diff options
Diffstat (limited to 'xxxterm.c')
-rw-r--r-- | xxxterm.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/xxxterm.c b/xxxterm.c index a6fe625..11030ae 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -337,7 +337,7 @@ config_parse(char *filename) { FILE *config; char *line, *cp, *var, *val; - size_t len, lineno = 0; + size_t len, lineno = 0; DNPRINTF(XT_D_CONFIG, "config_parse: filename %s\n", filename); @@ -353,7 +353,7 @@ config_parse(char *filename) for (;;) { if ((line = fparseln(config, &len, &lineno, NULL, 0)) == NULL) - if (feof(config)) + if (feof(config) || ferror(config)) break; cp = line; @@ -490,13 +490,16 @@ favorites(struct tab *t, struct karg *args) for (i = 1;;) { if ((title = fparseln(f, &len, &lineno, NULL, 0)) == NULL) - if (feof(f)) + if (feof(f) || ferror(f)) break; - if (strlen(title) == 0) + if (len == 0) { + free(title); + title = NULL; continue; + } if ((uri = fparseln(f, &len, &lineno, NULL, 0)) == NULL) - if (feof(f)) { + if (feof(f) || ferror(f)) { failed = 1; break; } |