OpenSSL: Fix a memory leak on hpke_labeled_expand() error path
Fixes: 786ea402bc
("HPKE base mode with single-shot API")
Signed-off-by: Chien Wong <m@xv97.com>
This commit is contained in:
parent
b35b1036fe
commit
a438e52933
1 changed files with 3 additions and 3 deletions
|
@ -4881,7 +4881,7 @@ hpke_labeled_expand(struct hpke_context *ctx, bool kem, const u8 *prk,
|
||||||
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
#if OPENSSL_VERSION_NUMBER >= 0x30000000L
|
||||||
hmac = EVP_MAC_fetch(NULL, "HMAC", NULL);
|
hmac = EVP_MAC_fetch(NULL, "HMAC", NULL);
|
||||||
if (!hmac)
|
if (!hmac)
|
||||||
return -1;
|
goto fail;
|
||||||
|
|
||||||
params[0] = OSSL_PARAM_construct_utf8_string(
|
params[0] = OSSL_PARAM_construct_utf8_string(
|
||||||
"digest",
|
"digest",
|
||||||
|
@ -4890,7 +4890,7 @@ hpke_labeled_expand(struct hpke_context *ctx, bool kem, const u8 *prk,
|
||||||
#else /* OpenSSL version >= 3.0 */
|
#else /* OpenSSL version >= 3.0 */
|
||||||
hctx = HMAC_CTX_new();
|
hctx = HMAC_CTX_new();
|
||||||
if (!hctx)
|
if (!hctx)
|
||||||
return -1;
|
goto fail;
|
||||||
#endif /* OpenSSL version >= 3.0 */
|
#endif /* OpenSSL version >= 3.0 */
|
||||||
|
|
||||||
while (left > 0) {
|
while (left > 0) {
|
||||||
|
@ -4899,7 +4899,7 @@ hpke_labeled_expand(struct hpke_context *ctx, bool kem, const u8 *prk,
|
||||||
EVP_MAC_CTX_free(hctx);
|
EVP_MAC_CTX_free(hctx);
|
||||||
hctx = EVP_MAC_CTX_new(hmac);
|
hctx = EVP_MAC_CTX_new(hmac);
|
||||||
if (!hctx)
|
if (!hctx)
|
||||||
return -1;
|
goto fail;
|
||||||
|
|
||||||
if (EVP_MAC_init(hctx, prk, mdlen, params) != 1)
|
if (EVP_MAC_init(hctx, prk, mdlen, params) != 1)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
Loading…
Reference in a new issue