From: Markus Armbruster Date: Sat, 29 Oct 2011 12:47:02 +0000 (+0200) Subject: Plug FILE leak on read_schedule() parse error path X-Git-Tag: v4.3.29~49 X-Git-Url: http://git.pond.sub.org/?p=empserver;a=commitdiff_plain;h=881dd41626ecba31a87ea9d67b70ec031af5bf2b Plug FILE leak on read_schedule() parse error path Leak introduced in initial commit 71320ed6, v4.3.10. --- diff --git a/src/lib/common/rdsched.c b/src/lib/common/rdsched.c index 685ebc68c..4065a4234 100644 --- a/src/lib/common/rdsched.c +++ b/src/lib/common/rdsched.c @@ -63,7 +63,7 @@ int read_schedule(char *fname, time_t sched[], int n, time_t t0, time_t anchor) { FILE *fp; - int lno = 0; + int ret, lno; char buf[1024]; char *endp; @@ -79,18 +79,21 @@ read_schedule(char *fname, time_t sched[], int n, time_t t0, time_t anchor) fname = ""; } + ret = lno = 0; sched[0] = 0; while (fgets(buf, sizeof(buf), fp) != NULL) { ++lno; endp = strchr(buf, '#'); if (endp) *endp = 0; - if (parse_schedule_line(buf, sched, n, t0, &anchor, fname, lno)) - return -1; + if (parse_schedule_line(buf, sched, n, t0, &anchor, fname, lno)) { + ret = -1; + break; + } } fclose(fp); - return 0; + return ret; } /*