From 771429b93137b16b0a338735488d8db15ea7ae95 Mon Sep 17 00:00:00 2001 From: Matthias Andree Date: Sat, 24 Apr 2010 04:06:25 +0200 Subject: Reduce complexity for parsing UIDL response to linear. --- pop3.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'pop3.c') diff --git a/pop3.c b/pop3.c index 3e62d864..04ea97bf 100644 --- a/pop3.c +++ b/pop3.c @@ -1054,6 +1054,7 @@ static int pop3_getrange(int sock, { /* UIDL worked - parse reply */ unsigned long unum; + struct idlist *newl = NULL; *newp = 0; while (gen_recv(sock, buf, sizeof(buf)) == PS_SUCCESS) @@ -1063,9 +1064,9 @@ static int pop3_getrange(int sock, if (parseuid(buf, &unum, id, sizeof(id)) == PS_SUCCESS) { - struct idlist *old, *newl; + struct idlist *old; - newl = save_str(&ctl->newsaved, id, UID_UNSEEN); + newl = save_str(newl ? &newl : &ctl->newsaved, id, UID_UNSEEN); newl->val.status.num = unum; if ((old = str_in_list(&ctl->oldsaved, id, FALSE))) -- cgit v1.2.3