]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lmtp: Fixed crash when multiple mails were saved and second one failed.
authorTimo Sirainen <tss@iki.fi>
Sat, 10 Apr 2010 04:25:19 +0000 (07:25 +0300)
committerTimo Sirainen <tss@iki.fi>
Sat, 10 Apr 2010 04:25:19 +0000 (07:25 +0300)
--HG--
branch : HEAD

src/lmtp/commands.c

index 5cdfafa13a7d7f3a13087d609504757afc3d2b5b..e8212e4e1c697de418458ebd9537d5ab654d606a 100644 (file)
@@ -606,13 +606,18 @@ client_input_data_write_local(struct client *client, struct istream *input)
 
        /* save the message to the first recipient's mailbox */
        src_mail = client->state.raw_mail;
-       if (!client_deliver_next(client, src_mail))
+       if (!client_deliver_next(client, src_mail)) {
+               /* nothing got saved */
+               i_assert(client->state.first_saved_mail == NULL);
                return;
+       }
 
        if (client->state.first_saved_mail == NULL)
                mail_user_unref(&client->state.dest_user);
-       else
+       else {
+               client->state.dest_user = NULL;
                src_mail = client->state.first_saved_mail;
+       }
 
        /* use the first saved message to save it elsewhere too.
           this might allow hard linking the files. */