# HG changeset patch # User Timo Sirainen # Date 1287184895 -3600 # Node ID d44e64390bdd283a62686aa4fb9934d1152ff2d9 # Parent 0d689c112c6e69808f130aae1d73893a688f90a9 lmtp: Don't access freed memory if input couldn't be opened as raw mail. This shouldn't really have ever happened. diff -r 0d689c112c6e -r d44e64390bdd src/lmtp/commands.c --- a/src/lmtp/commands.c Fri Oct 15 19:50:51 2010 +0100 +++ b/src/lmtp/commands.c Sat Oct 16 00:21:35 2010 +0100 @@ -574,10 +574,9 @@ struct mailbox_header_lookup_ctx *headers_ctx; enum mail_error error; - client->state.raw_box = box = - mailbox_alloc(client->raw_mail_user->namespaces->list, - "Dovecot Delivery Mail", - MAILBOX_FLAG_NO_INDEX_FILES); + box = mailbox_alloc(client->raw_mail_user->namespaces->list, + "Dovecot Delivery Mail", + MAILBOX_FLAG_NO_INDEX_FILES); if (mailbox_open_stream(box, input) < 0 || mailbox_sync(box, 0) < 0) { i_error("Can't open delivery mail as raw: %s", @@ -589,6 +588,7 @@ raw_box = (struct raw_mailbox *)box; raw_box->envelope_sender = client->state.mail_from; + client->state.raw_box = box; client->state.raw_trans = mailbox_transaction_begin(box, 0); headers_ctx = mailbox_header_lookup_init(box, wanted_headers);