From 75cea2c32b8f722dee8d603ecf9b84bdefec67a6 Mon Sep 17 00:00:00 2001 From: DL6ER Date: Sat, 3 Jun 2017 18:54:05 +0200 Subject: [PATCH] Some improvements for getline() --- setupVars.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/setupVars.c b/setupVars.c index a9b3079a..b530ce87 100644 --- a/setupVars.c +++ b/setupVars.c @@ -43,6 +43,7 @@ char* find_equals(const char* s) // actually point to memory addresses // which we allocate for this buffer. char * linebuffer = NULL; +size_t linebuffersize = 0; char * read_setupVarsconf(const char * key) { @@ -63,9 +64,8 @@ char * read_setupVarsconf(const char * key) } sprintf(keystr, "%s=", key); - size_t size; errno = 0; - while(getline(&linebuffer, &size, setupVarsfp) != -1) + while(getline(&linebuffer, &linebuffersize, setupVarsfp) != -1) { // Strip (possible) newline linebuffer[strcspn(linebuffer, "\n")] = '\0'; @@ -97,6 +97,7 @@ char * read_setupVarsconf(const char * key) if(linebuffer != NULL) { free(linebuffer); + linebuffersize = 0; linebuffer = NULL; } @@ -141,6 +142,7 @@ void clearSetupVarsArray(void) if(linebuffer != NULL) { free(linebuffer); + linebuffersize = 0; linebuffer = NULL; } }