From b0280c634f4bcde8b99cb7ca9dfc95b89f0a4288 Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Mon, 12 Apr 2010 09:52:19 +0200 Subject: Semi-plug memory leak when using default rcfile entry. Does not free all members of struct query, but just servername and the query node itself. Add a FIXME note. --- NEWS | 3 +++ fetchmail.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index 44df8aca..cd8d367f 100644 --- a/NEWS +++ b/NEWS @@ -54,6 +54,9 @@ removed from a 6.4.0 or newer release.) fetchmail-6.3.17 (not yet released): +# BUG FIX +* Plug memory leak when using a "defaults" entry in the run control file. + # REGRESSION FIX * Fix string handling in rcfile scanner, which caused fetchmail to misparse a run control file in certain circumstances. Fixes BerliOS bug #14257. diff --git a/fetchmail.c b/fetchmail.c index 4e0ea519..af2a5dda 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -1094,12 +1094,18 @@ static int load_params(int argc, char **argv, int optind) /* * If there's a defaults record, merge it and lose it. + * FIXME: we don't currently free all entries that might be in struct query. */ if (querylist && strcmp(querylist->server.pollname, "defaults") == 0) { + struct query *tmpq; + for (ctl = querylist->next; ctl; ctl = ctl->next) optmerge(ctl, querylist, FALSE); + tmpq = querylist; querylist = querylist->next; + free(tmpq->server.pollname); + free(tmpq); } /* don't allow a defaults record after the first */ -- cgit v1.2.3