The following issue has been RESOLVED.
======================================================================
http://www.dbmail.org/mantis/view.php?id=262
======================================================================
Reported By: idk
Assigned To: paul
======================================================================
Project: DBMail
Issue ID: 262
Category: IMAP daemon
Reproducibility: have not tried
Severity: minor
Priority: low
Status: resolved
Resolution: fixed
Fixed in Version: SVN Trunk
======================================================================
Date Submitted: 25-Aug-05 20:18 CEST
Last Modified: 14-Feb-06 16:55 CET
======================================================================
Summary: When server could not parse a message body, server
may crash due a memory corruption
Description:
In rfcmsg.c[768] is
msg->rfcheadersize =
strlen("subject: dbmail IMAP server info: this message could not be
parsed\r\n")
+ strlen("from: [EMAIL PROTECTED]");
but some rows before is
strcpy(mr.field, "from");
GetConfigValue("POSTMASTER", "DBMAIL", postmaster);
strncpy(mr.value, postmaster, MIME_VALUE_MAX - 1);
I have configured postmaster address with two characters less than
[EMAIL PROTECTED], I don't want to try what there will happen with
larger addresses. Maybe nothing. But compute total string length with
proper parameters will be better, I mean ;)
======================================================================
----------------------------------------------------------------------
paul - 25-Aug-05 20:57
----------------------------------------------------------------------
Let me put this in perspective.
rfcheadersize is never used during normal operations. It is called into
action when the imap server cannot parse a message. And then it's only
used to tell the imap client about the rfc822 size of a message. So this
value may indeed be off, but will then only lead to confusion of the imap
client, *not* to stack smashing on the server-side.
In 2.1 this whole slew of code (dbmsgbuf.c/rfcmsg.c/mime.c) which
constitute both message-parsing *and* message-caching at the same time
(grrr) are being replaced with gmime code (as far as the parsing bit
goes). This is a slow process (small steps) by design (test-driven
refactoring). But this rfcsize part is already long gone. In 2.1 CRLF
conversion is done by setting a gmime-filter. Speed is not my primairy
concern here. Reliability is.
Dont hesitate to send me a patch (diff -ur) and I will apply.
PjS
Issue History
Date Modified Username Field Change
======================================================================
25-Aug-05 20:18 idk New Issue
25-Aug-05 20:57 paul Note Added: 0000881
25-Aug-05 20:57 paul Priority normal => low
25-Aug-05 20:57 paul Status new => acknowledged
25-Aug-05 20:57 paul Resolution open => no change
required
14-Feb-06 16:55 paul Status acknowledged => resolved
14-Feb-06 16:55 paul Fixed in Version => SVN Trunk
14-Feb-06 16:55 paul Resolution no change required =>
fixed
14-Feb-06 16:55 paul Assigned To => paul
======================================================================