summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libc/misc/internals/parse_config.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libc/misc/internals/parse_config.c b/libc/misc/internals/parse_config.c
index c17d25553..4d21b5eec 100644
--- a/libc/misc/internals/parse_config.c
+++ b/libc/misc/internals/parse_config.c
@@ -75,8 +75,8 @@ static off_t bb_get_chunk_with_continuation(parser_t* parsr)
else
break;
} else if (parsr->allocated) {
- parsr->line_len += PAGE_SIZE;
- parsr->data = realloc(parsr->data,
+ parsr->line_len += PAGE_SIZE;
+ parsr->data = realloc(parsr->data,
parsr->data_len + parsr->line_len);
parsr->line = parsr->data + parsr->data_len;
} else {
@@ -206,8 +206,6 @@ again:
len = bb_get_chunk_with_continuation(parser);
if (len == -1)
return 0;
- *tokens = (char **) parser->data;
- memset(*tokens, 0, sizeof(*tokens[0]) * ntokens);
line = parser->line;
/* Skip multiple token-delimiters in the start of line? */
@@ -217,6 +215,9 @@ again:
if (line[0] == '\0' || line[0] == delims[0])
goto again;
+ *tokens = (char **) parser->data;
+ memset(*tokens, 0, sizeof(*tokens[0]) * ntokens);
+
/* Tokenize the line */
for (t = 0; *line && *line != delims[0] && t < ntokens; t++) {
/* Pin token */