diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-03-24 04:39:59 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-03-24 04:39:59 +0000 |
commit | 30abdc40501b9675ead72fa59ae138fc4336de47 (patch) | |
tree | 0780784e2bbb19dc91f27efb71d50a21c2b73d8b | |
parent | 82bbe2cb114ed913133261c19f3ff04097865d3d (diff) | |
download | fetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.tar.gz fetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.tar.bz2 fetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.zip |
Prevernt formation of pathological lists.
svn path=/trunk/; revision=1722
-rw-r--r-- | fetchmail.c | 6 | ||||
-rw-r--r-- | uid.c | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/fetchmail.c b/fetchmail.c index 43799cc1..a9bf2348 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -694,6 +694,12 @@ static int load_params(int argc, char **argv, int optind) ctl = hostalloc(&cmd_opts); ctl->server.pollname = xstrdup(argv[optind]); + /* avoid making pathological circular lists */ + ctl->server.localdomains = (struct idlist *)NULL; + ctl->localnames = (struct idlist *)NULL; + ctl->mailboxes = (struct idlist *)NULL; + ctl->smtphunt = (struct idlist *)NULL; + foundit: ctl->active = TRUE; } @@ -277,7 +277,9 @@ int delete_str(struct idlist **idl, int num) void append_str_list(struct idlist **idl, struct idlist **nidl) /* append nidl to idl (does not copy *) */ { - if ((*idl) == (struct idlist *)NULL) + if ((*nidl) == (struct idlist *)NULL) + return; + else if ((*idl) == (struct idlist *)NULL) *idl = *nidl; else if ((*idl)->next == (struct idlist *)NULL) (*idl)->next = *nidl; |