[DBMail 0001070]: dbmail-export segfaults on one user, user has messages but cannot retrieve them via imapd or pop3d
Mantis Bug Tracker <[email protected]> Mon, 23 Mar 2015 17:05:31 +0100
| Newsgroups | gmane.mail.imap.dbmail.devel |
|---|---|
| Message-ID | <[email protected]> |
A NOTE has been added to this issue.
======================================================================
http://www.dbmail.org/mantis/view.php?id=1070
======================================================================
Reported By: faxguy
Assigned To:
======================================================================
Project: DBMail
Issue ID: 1070
Category: Command-Line programs (dbmail-users, dbmail-util)
Reproducibility: always
Severity: minor
Priority: normal
Status: new
target:
======================================================================
Date Submitted: 23-Mar-15 17:02 CET
Last Modified: 23-Mar-15 17:05 CET
======================================================================
Summary: dbmail-export segfaults on one user, user has
messages but cannot retrieve them via imapd or pop3d
Description:
After months of proper operations, suddenly one user account was unable to
retrieve any messages due to a corruption with one message. However, all
other user accounts were behaving normally.
dbmail-export segfaulted when attempting to export the messages for that
user account.
dbmail-util did not repair or remove the corrupted message.
I will be attaching an strace of the dbmail-export segfault and also a
patch to fix that segfault.
======================================================================
----------------------------------------------------------------------
(0003696) faxguy (reporter) - 23-Mar-15 17:05
http://www.dbmail.org/mantis/view.php?id=1070#c3696
----------------------------------------------------------------------
The dbmail-export segfault is fixed by the attached patch.
dbmail_message_retrieve() can return NULL, and this condition was not being
handled.
I note that a NULL return from dbmail_message_retrieve() is also not
handled in both src/dm_http.c and src/maintenance.c, but I did not address
these since my immediate use would not have allowed me to test any code
changes to there. I will leave that to you.
I would like to see dbmail-util correct or remove the corrupt message. I
would much-prefer to just run dbmail-util than to run hard-code a printf
into dbmail-export and then delete a record from the database.
Issue History
Date Modified Username Field Change
======================================================================
23-Mar-15 17:02 faxguy New Issue
23-Mar-15 17:03 faxguy File Added: strace.txt
23-Mar-15 17:04 faxguy File Added: dbmail-nullmessagefix.patch
23-Mar-15 17:05 faxguy Note Added: 0003696
======================================================================