Avoid segfaults in EVP_PKEY_CTX_free()
authortb <tb@openbsd.org>
Wed, 30 Mar 2022 07:17:48 +0000 (07:17 +0000)
committertb <tb@openbsd.org>
Wed, 30 Mar 2022 07:17:48 +0000 (07:17 +0000)
commitf802266ee2c993ad1c979c057f92717755cafb58
tree8216a727118cd6fe2db7854fd06e851fb755e4b4
parent03dc3df72212220d2eee1a3f0c673b33cd96485d
Avoid segfaults in EVP_PKEY_CTX_free()

It is possible to call pmeth->cleanup() with an EVP_PKEY_CTX whose data
is NULL. If pmeth->init() in int_ctx_new() fails, EVP_PKEY_CTX_free() is
called with such a context. This in turn calls pmeth->cleanup(), and thus
these cleanup functions must be careful not to use NULL data.  Most of
them are, but one of GOST's functions and HMAC's aren't.

Reported for HMAC by Masaru Masada
https://github.com/libressl-portable/openbsd/issues/129

ok bcook jsing
lib/libcrypto/gost/gostr341001_pmeth.c
lib/libcrypto/hmac/hm_pmeth.c