diff options
author | Matthias Andree <matthias.andree@gmx.de> | 2010-04-12 09:52:19 +0200 |
---|---|---|
committer | Matthias Andree <matthias.andree@gmx.de> | 2010-04-13 00:59:06 +0200 |
commit | b0280c634f4bcde8b99cb7ca9dfc95b89f0a4288 (patch) | |
tree | 2fea98af00b6a48984b2a069769d1d214ceb7512 | |
parent | 24747c1afe7c3c2df648eba7f6964d987460acbd (diff) | |
download | fetchmail-b0280c634f4bcde8b99cb7ca9dfc95b89f0a4288.tar.gz fetchmail-b0280c634f4bcde8b99cb7ca9dfc95b89f0a4288.tar.bz2 fetchmail-b0280c634f4bcde8b99cb7ca9dfc95b89f0a4288.zip |
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.
-rw-r--r-- | NEWS | 3 | ||||
-rw-r--r-- | fetchmail.c | 6 |
2 files changed, 9 insertions, 0 deletions
@@ -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 */ |