diff options
Diffstat (limited to 'camel')
-rw-r--r-- | camel/ChangeLog | 5 | ||||
-rw-r--r-- | camel/providers/pop3/camel-pop3-store.c | 6 |
2 files changed, 9 insertions, 2 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index 90cac0d0ee..a8f4b721ca 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,8 @@ +2000-07-01 Dan Winship <danw@helixcode.com> + + * providers/pop3/camel-pop3-store.c (connect_to_server): fix the + CAPA-parsing code to not get into an infinite loop. + 2000-07-01 Jeffrey Stedfast <fejj@helixcode.com> * providers/imap/camel-imap-folder.c (imap_get_message): Fixed diff --git a/camel/providers/pop3/camel-pop3-store.c b/camel/providers/pop3/camel-pop3-store.c index bdfe8dd36e..636172bb94 100644 --- a/camel/providers/pop3/camel-pop3-store.c +++ b/camel/providers/pop3/camel-pop3-store.c @@ -292,9 +292,9 @@ connect_to_server (CamelService *service, gboolean real, CamelException *ex) if (!strncmp (p, "IMPLEMENTATION ", 15)) { store->implementation = g_strndup (p + 15, len - 15); - } else if (!strncmp (p, "TOP", len)) + } else if (len == 3 && !strncmp (p, "TOP", 3)) store->supports_top = TRUE; - else if (!strncmp (p, "UIDL", len)) + else if (len == 4 && !strncmp (p, "UIDL", 4)) store->supports_uidl = TRUE; else if (!strncmp (p, "LOGIN-DELAY ", 12)) store->login_delay = atoi (p + 12); @@ -304,6 +304,8 @@ connect_to_server (CamelService *service, gboolean real, CamelException *ex) store->expires = TRUE; p += len; + if (*p) + p++; } g_free (buf); |