SMTP: free the queue item in the very last function, so we have a valid pointer to...
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 20 May 2012 18:03:44 +0000 (20:03 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 20 May 2012 18:03:44 +0000 (20:03 +0200)
citadel/modules/smtp/serv_smtpeventclient.c

index 0d3428fea894f5ed529b75e2b50254875ad2064d..4b6dea3954c39c48cb681eb066e02f442754d8bd 100644 (file)
@@ -203,14 +203,16 @@ eNextState FinalizeMessageSend_DB(AsyncIO *IO)
        }
 
        RemoveContext(Msg->IO.CitContext);
-       if (Msg->IDestructQueItem)
-               RemoveQItem(Msg->MyQItem);
        return eAbort;
 }
 
 eNextState Terminate(AsyncIO *IO)
 {
        SmtpOutMsg *Msg = IO->Data;
+
+       if (Msg->IDestructQueItem)
+               RemoveQItem(Msg->MyQItem);
+
        DeleteSmtpOutMsg(Msg);
        return eAbort;
 }