![]() |
When a bug is identified in an old release of Pine, there is a very strong possibility that the associated code has been re-written to the point that a fix will not apply to the current release. Hence, if we can't reproduce the problem in the current version, our standard response will be to ask you to upgrade.
Documentation of past Bugs and when they were fixed can be found on the Pine Release Chronology & Version Changes Web page.
It has recently been discovered that c-client's IMAP client parser does not properly handle BODYSTRUCTURE extension data that is in the form of a literal. Unfortunately, this creates a compatibility problem with some newer IMAP servers which generate this extension data (including the latest UW imapd in imap-2002!).
The fix is to change file c-client/imap4r1.c, line:
net_getbuffer (LOCAL->netstream,j = max (i,(long) IMAPTMPLEN - 1), to become: net_getbuffer (LOCAL->netstream,j = min (i,(long) IMAPTMPLEN - 1),
That is, change the "max" to a "min". After making this change, rebuild c-client and/or Pine. Make sure that imap4r1.c is recompiled.
The bug is that instead of reading the desired extension data, it reads IMAPTMPLEN-1 bytes (generally a much larger number) beyond the extension data, thus losing synchronization with subsequent data. The user either sees a proliferation of error messages, or the IMAP session seems to get stuck in a read timeout.
This fix is for all versions of c-client up to and including the one in imap-2002 RC2; this also means *ALL* versions of Pine up to and including Pine 4.44. The fix is in imap-2002 RC3 and is in Pine beginning with version 4.50