]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Avoid memory leak in hmac_ctx_new (OpenSSL 3.0 only)
authorSelva Nair <selva.nair@gmail.com>
Sat, 30 Oct 2021 18:57:56 +0000 (14:57 -0400)
committerGert Doering <gert@greenie.muc.de>
Fri, 5 Nov 2021 15:12:09 +0000 (16:12 +0100)
In OpenSSL 3.0, fetched algorithms must be freed
(down referenced). In this case, though EVP_MAC_CTX_new()
keeps a reference to 'hmac', it up-refs it. So we have to free
it here before return.

(Tested using an enable-asan build).

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Message-Id: <20211030185756.1831-1-selva.nair@gmail.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg23080.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/crypto_openssl.c

index c43d18b9c1fe71fe0f7c91305e09b2e9a94b3463..8e29a77b42df114c9d712f3a60d8dec4f3b98efc 100644 (file)
@@ -1097,6 +1097,9 @@ hmac_ctx_new(void)
     EVP_MAC *hmac = EVP_MAC_fetch(NULL, "HMAC", NULL);
     ctx->ctx = EVP_MAC_CTX_new(hmac);
     check_malloc_return(ctx->ctx);
+
+    EVP_MAC_free(hmac);
+
     return ctx;
 }