aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fetchmail.c9
-rw-r--r--uid.c1
2 files changed, 5 insertions, 5 deletions
diff --git a/fetchmail.c b/fetchmail.c
index 3cd8c0d6..0deb0598 100644
--- a/fetchmail.c
+++ b/fetchmail.c
@@ -759,15 +759,14 @@ int main(int argc, char **argv)
static void list_merge(struct idlist **dstl, struct idlist **srcl, int force)
{
/*
- * If force is off, modify h2 fields only when they're empty (treat h1
- * as defaults). If force is on, modify each h2 field whenever h1
- * is nonempty (treat h1 as an override).
+ * If force is off, modify dstl fields only when they're empty (treat srcl
+ * as defaults). If force is on, modify each dstl field whenever scrcl
+ * is nonempty (treat srcl as an override).
*/
- if (force ? !!srcl : !dstl)
+ if (force ? !!*srcl : !*dstl)
{
struct idlist *cpl = copy_str_list(*srcl);
- free_str_list(dstl);
append_str_list(dstl, &cpl);
}
}
diff --git a/uid.c b/uid.c
index 453274b7..cf8a008b 100644
--- a/uid.c
+++ b/uid.c
@@ -394,6 +394,7 @@ struct idlist *copy_str_list(struct idlist *idl)
else
{
newnode = (struct idlist *)xmalloc(sizeof(struct idlist));
+ memcpy(newnode, idl, sizeof(struct idlist));
newnode->next = copy_str_list(idl->next);
return(newnode);
}