bug in the proxy module ...
Ken Murchison
murch at andrew.cmu.edu
Tue Jun 10 10:07:39 EDT 2008
Any suggestions? I'm off thinking about other things at the moment.
Wesley Craig wrote:
> Looks like this change:
>
> https://bugzilla.andrew.cmu.edu/cgi-bin/cvsweb.cgi/src/cyrus/imap/proxy.c.diff?r1=1.3;r2=1.4
>
>
> is in error. The old code was wrong, but this change is also wrong.
>
> :wes
>
> On 09 Jun 2008, at 08:52, Brasseur Valery wrote:
>> I am using cyrus 2.3.11 in a murder setup... from time to time have
>> got an hang from the pop3 proxyd ...
>>
>> I nail it donw to the following portion of code :
>> in imap/proxy.c near line 266 :
>> <quote>
>> if (pout) {
>> const char *err;
>> char buf[4096];
>> int c;
>>
>> do {
>> c = prot_read(pin, buf, sizeof(buf));
>>
>> if (c == 0 || c < 0) break;
>> prot_write(pout, buf, c);
>> } while (c == sizeof(buf));
>>
>> if ((err = prot_error(pin)) != NULL) { </quote>
>>
>> from time to time, the prot_read return exactly 4096 bytes, but it's
>> the end of the message...
>> so backend seat and wait for next command, and proxy seat and wait for
>> the next buffer ...
>> forever !
>>
>> for me it's seems that the condition " c == sizeof(buf)" is not enough
>> in that case.
>
--
Kenneth Murchison
Systems Programmer
Project Cyrus Developer/Maintainer
Carnegie Mellon University
More information about the Cyrus-devel
mailing list