From: Stephan Bosch Date: Sun, 13 Jan 2019 22:17:54 +0000 (+0100) Subject: lib-smtp: client: transaction: Prevent NULL dereference in smtp_client_transaction_un... X-Git-Tag: 2.3.10~101 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48201a670eaf90dd8a94108dc836d2ce9d282235;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: client: transaction: Prevent NULL dereference in smtp_client_transaction_unref(). The trans pointer is used before it is checked for being NULL, which is allowed for this function. Problem found by Coverity. --- diff --git a/src/lib-smtp/smtp-client-transaction.c b/src/lib-smtp/smtp-client-transaction.c index 225d9f5ff0..7ed8784244 100644 --- a/src/lib-smtp/smtp-client-transaction.c +++ b/src/lib-smtp/smtp-client-transaction.c @@ -603,12 +603,13 @@ void smtp_client_transaction_ref(struct smtp_client_transaction *trans) void smtp_client_transaction_unref(struct smtp_client_transaction **_trans) { struct smtp_client_transaction *trans = *_trans; - struct smtp_client_connection *conn = trans->conn; + struct smtp_client_connection *conn; *_trans = NULL; if (trans == NULL) return; + conn = trans->conn; i_assert(trans->refcount > 0); if (--trans->refcount > 0)