From: Stephan Bosch Date: Sat, 29 Sep 2018 11:19:53 +0000 (+0200) Subject: lib-smtp: client: transaction: Make sure the transaction is finished/aborted after... X-Git-Tag: 2.3.9~1264 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2ddbfc7e717b3994be38f598d944cdf22b68aa17;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: client: transaction: Make sure the transaction is finished/aborted after smtp_client_connection_destroy(). Otherwise, the transaction could be dereferenced several times too often. --- diff --git a/src/lib-smtp/smtp-client-transaction.c b/src/lib-smtp/smtp-client-transaction.c index bc15516021..ad8568a24b 100644 --- a/src/lib-smtp/smtp-client-transaction.c +++ b/src/lib-smtp/smtp-client-transaction.c @@ -299,6 +299,8 @@ void smtp_client_transaction_destroy(struct smtp_client_transaction **_trans) if (trans->state < SMTP_CLIENT_TRANSACTION_STATE_FINISHED) { struct smtp_client_transaction *trans_tmp = trans; + + trans->state = SMTP_CLIENT_TRANSACTION_STATE_ABORTED; smtp_client_transaction_unref(&trans_tmp); }