From 881dd41626ecba31a87ea9d67b70ec031af5bf2b Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sat, 29 Oct 2011 14:47:02 +0200 Subject: [PATCH] Plug FILE leak on read_schedule() parse error path Leak introduced in initial commit 71320ed6, v4.3.10. --- src/lib/common/rdsched.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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; } /* -- 2.43.0