diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1998-05-16 19:17:42 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1998-05-16 19:17:42 +0000 |
commit | f35ea15b76a5e1883e0c9fe259a3572f8d75bea7 (patch) | |
tree | 7e777440ec47c65fcb88d2ee2c45c2be3f524f3e /pop3.c | |
parent | f97a589229104ed5ebf951d199162dd68587e537 (diff) | |
download | fetchmail-f35ea15b76a5e1883e0c9fe259a3572f8d75bea7.tar.gz fetchmail-f35ea15b76a5e1883e0c9fe259a3572f8d75bea7.tar.bz2 fetchmail-f35ea15b76a5e1883e0c9fe259a3572f8d75bea7.zip |
Better fix for qpopper TOP problem.
svn path=/trunk/; revision=1790
Diffstat (limited to 'pop3.c')
-rw-r--r-- | pop3.c | 14 |
1 files changed, 9 insertions, 5 deletions
@@ -531,7 +531,7 @@ static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp) * the server. * * The line count passed is the maximum value of a twos-complement - * signed integer (we take advantage of the fact that, according + * signed integer minus 1 (we take advantage of the fact that, according * to all the POP RFCs, "if the number of lines requested by the * POP3 client is greater than than the number of lines in the * body, then the POP3 server sends the entire message."). @@ -542,14 +542,18 @@ static int pop3_fetch(int sock, struct query *ctl, int number, int *lenp) * * Also suppress TOP if fetchall is on. This is a kludge to get * around a really obnoxious bug in qpopper 2.41 beta 1 that must - * have been introduced sometime after the 2.2 I tested with. The - * newer version doesn't bounds-check TOP requests to clip them - * at the next end of message. Grrrrr... + * have been introduced sometime after the 2.2 I tested with (Erwan + * Mas claims it was in 2.3). The newer version doesn't bounds-check TOP + * requests to clip them at the next end of message. Grrrrr... + * + * (Erwan MAS <mas@nic.fr> thinks this was actually due to the TOP + * argument overflowing and recommended I decrement it. Hmmm... + * maybe we can take out the fetchall kluge?) */ if (ctl->keep || ctl->fetchall) gen_send(sock, "RETR %d", number); else - gen_send(sock, "TOP %d 2147483647", number); + gen_send(sock, "TOP %d 2147483646", number); if ((ok = pop3_ok(sock, buf)) != 0) return(ok); |