dovecot: raw storage caused assert-crashes after mail_get_stream...

dovecot at dovecot.org dovecot at dovecot.org
Fri Dec 28 00:50:52 EET 2007


details:   http://hg.dovecot.org/dovecot/rev/b7f037c8ff57
changeset: 7044:b7f037c8ff57
user:      Timo Sirainen <tss at iki.fi>
date:      Fri Dec 28 00:50:48 2007 +0200
description:
raw storage caused assert-crashes after mail_get_stream(). Fixes deliver.

diffstat:

1 file changed, 4 insertions(+), 2 deletions(-)
src/lib-storage/index/raw/raw-mail.c |    6 ++++--

diffs (16 lines):

diff -r 7708a8c166d6 -r b7f037c8ff57 src/lib-storage/index/raw/raw-mail.c
--- a/src/lib-storage/index/raw/raw-mail.c	Fri Dec 28 00:00:07 2007 +0200
+++ b/src/lib-storage/index/raw/raw-mail.c	Fri Dec 28 00:50:48 2007 +0200
@@ -79,8 +79,10 @@ raw_mail_get_stream(struct mail *_mail, 
 	struct raw_mailbox *mbox = (struct raw_mailbox *)_mail->box;
 
 	if (mail->data.stream == NULL) {
-		i_stream_ref(mbox->input);
-		mail->data.stream = mbox->input;
+		/* we can't just reference mbox->input, because
+		   index_mail_close() expects to be able to free the stream */
+		mail->data.stream =
+			i_stream_create_limit(mbox->input, (uoff_t)-1);
 	}
 
 	return index_mail_init_stream(mail, hdr_size, body_size, stream_r);


More information about the dovecot-cvs mailing list