diff --git a/modfetch.c b/modfetch.c index 68b0da9..dfd6d3e 100644 --- a/modfetch.c +++ b/modfetch.c @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -109,6 +110,7 @@ char *resolve_env_vars(const char *str) { ret[ret_offset] = str[i]; ret_offset += 1; } + ret[ret_offset] = '\0'; return ret; } @@ -140,6 +142,9 @@ Config parse_config(FILE *config_file) { .module_count = 0, }; + // TODO handle errors of all the function inside the while + errno = 0; + // TODO rewrite this to read the config char by char while ((read = getline(&line, &len, config_file)) != -1) { if (read <= 1) @@ -200,6 +205,8 @@ Config parse_config(FILE *config_file) { free(line); } + if (read == -1 && errno != 0) + free(line); return config; }