diff options
author | =?UTF-8?q?Higor=20Eur=C3=ADpedes?= <heuripedes@gmail.com> | 2015-07-26 11:00:25 -0700 |
---|---|---|
committer | =?UTF-8?q?Higor=20Eur=C3=ADpedes?= <heuripedes@gmail.com> | 2015-07-26 11:00:25 -0700 |
commit | 6c280f3b1f8e072f86fc41b371cf616be1483030 (patch) | |
tree | e0b977af3a115ed82f3a74e9f6c0690579933c68 /config.c | |
parent | eb2f5614ca10aed240f2d7b310c6929874effc3b (diff) |
Fix some memory issues
Diffstat (limited to 'config.c')
-rw-r--r-- | config.c | 12 |
1 files changed, 7 insertions, 5 deletions
@@ -48,11 +48,11 @@ tern_node * parse_config_int(char **state, int started, int *line) curline = strip_ws(curline); int len = strlen(curline); if (!len) { - *line++; + *line = *line + 1; continue; } if (curline[0] == '#') { - *line++; + *line = *line + 1; continue; } if (curline[0] == '}') { @@ -67,7 +67,7 @@ tern_node * parse_config_int(char **state, int started, int *line) if (*end == '{') { *end = 0; curline = strip_ws(curline); - *line++; + *line = *line + 1; head = tern_insert_node(head, curline, parse_config_int(state, 1, line)); } else { char * val = strip_ws(split_keyval(curline)); @@ -77,7 +77,7 @@ tern_node * parse_config_int(char **state, int started, int *line) } else { fprintf(stderr, "Key %s is missing a value on line %d\n", key, *line); } - *line++; + *line = *line + 1; } } return head; @@ -100,10 +100,12 @@ tern_node * parse_config_file(char * config_path) if (!config_size) { goto config_empty; } - char * config_data = malloc(config_size); + char * config_data = malloc(config_size+1); if (fread(config_data, 1, config_size, config_file) != config_size) { goto config_read_fail; } + config_data[config_size] = '\0'; + ret = parse_config(config_data); config_read_fail: free(config_data); |