bug in the proxy module ...
Simon Matter
simon.matter at invoca.ch
Fri Jun 13 06:58:17 EDT 2008
> Hi,
>
> 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.
>
Did anybody look at this in the mean time?
Simon
More information about the Info-cyrus
mailing list