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>
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;
}