aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>1998-03-24 04:39:59 +0000
committerEric S. Raymond <esr@thyrsus.com>1998-03-24 04:39:59 +0000
commit30abdc40501b9675ead72fa59ae138fc4336de47 (patch)
tree0780784e2bbb19dc91f27efb71d50a21c2b73d8b
parent82bbe2cb114ed913133261c19f3ff04097865d3d (diff)
downloadfetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.tar.gz
fetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.tar.bz2
fetchmail-30abdc40501b9675ead72fa59ae138fc4336de47.zip
Prevernt formation of pathological lists.
svn path=/trunk/; revision=1722
-rw-r--r--fetchmail.c6
-rw-r--r--uid.c4
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;
}
diff --git a/uid.c b/uid.c
index ac49a013..8e51bb32 100644
--- a/uid.c
+++ b/uid.c
@@ -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;