diff options
| -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;  | 
