Fix the "UNIX mailbox first message symptom".
UFMS, or "UNIX mailbox first message symptom", is a long-standing bug that existed in all previous versions of Mailutils: under certain circumstances, a fragment of the message headers would get prepended to the body of the very first message in a UNIX mailbox. See the detailed description in testsuite/ufms.c. Along with fixing this bug, this change also ensures a proper restoring of UIDs from UNIX mailboxes. * libproto/mbox/mbox.c (_msg_body_setup): Call mu_body_clear_modified after constructing the body. (new_message): Ditto for mu_message_clear_modified. (mbox_reset): Rewrite. Drop all cached messages and rescan entire mailbox to avoid the "1st message symptom". (mbox_expunge0): Change the call to mbox_reset. * libproto/mbox/mboxscan.c (IS_X_UID, IS_X_IMAPBASE): New macros. (mbox_scan_internal): Change handling of min_uid. Attempt to get UID and imapbase from the corresponding message headers. (mbox_scan0): Reflect the above changes. * testsuite/.gitignore: Add ufms. * testsuite/Makefile.am (noinst_PROGRAMS): Add ufms. (TESTSUITE_AT): Add ufms.at. * testsuite/testsuite.at: Include ufms.at. * testsuite/ufms.at: New test case. * testsuite/ufms.c: New test program. * imap4d/testsuite/imap4d/expunge.exp: Fix UIDNEXT expectation.
Showing
8 changed files
with
242 additions
and
33 deletions
testsuite/ufms.at
0 → 100644
testsuite/ufms.c
0 → 100644
-
Please register or sign in to post a comment