At 6:04 PM -0600 3/19/02, Randall Gellens wrote:

>  This appears to be an edge condition; it does not occur with 2148 
> characters, for example.  (Which explains why my buffer-overrun 
> test utility didn't see any problem.)  When the input buffer fills 
> up with junk and no CRLF in sight, Qpopper goes attempts to read 
> and discard network input until either it stops or it sees a CRLF. 
> Unfortunately, if the buffer is exactly full (an even multiple of 
> 2048), it does a read with length=0, which of course returns with a 
> 0 result.  The code then loops, asking for and receiving zero 
> bytes. I'm working on a fix.

The cause isn't as simple as that, sorry (which I realized as soon as 
I sent the message).  It doesn't loop for me on some systems (such as 
OpenBSD 2.9) with inputs that aren't an even multiple of 2048.  It 
also doesn't loop for me at all (with any size input) on some systems 
(such as Darwin/MacOS X).

Reply via email to