SMTP: free the queue item in the very last function, so we have a valid pointer to...
[citadel.git] / 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;
 }