]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-client-transaction - Make smtp_client_transaction_rcpt_replied(NULL...
authorStephan Bosch <stephan.bosch@open-xchange.com>
Fri, 25 Sep 2020 01:29:53 +0000 (03:29 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 18 Nov 2021 17:08:45 +0000 (17:08 +0000)
src/lib-smtp/smtp-client-transaction.c

index 4f2570130b6d08e0ce850c8958d30635addab34e..296368f003dfff45050528faa3336b6965a2ed3c 100644 (file)
@@ -330,6 +330,11 @@ smtp_client_transaction_rcpt_replied(
        const struct smtp_reply *reply)
 {
        struct smtp_client_transaction_rcpt *rcpt = *_rcpt;
+
+       *_rcpt = NULL;
+       if (rcpt == NULL)
+               return;
+
        bool success = smtp_reply_is_success(reply);
        smtp_client_command_callback_t *rcpt_callback = rcpt->rcpt_callback;
        void *context = rcpt->context;
@@ -341,9 +346,9 @@ smtp_client_transaction_rcpt_replied(
        rcpt->finished = !success;
 
        if (success)
-               smtp_client_transaction_rcpt_approved(_rcpt);
+               smtp_client_transaction_rcpt_approved(&rcpt);
        else
-               smtp_client_transaction_rcpt_denied(_rcpt, reply);
+               smtp_client_transaction_rcpt_denied(&rcpt, reply);
 
        /* Call the callback */
        if (rcpt_callback != NULL)