From: Pauli Date: Sun, 19 Mar 2023 22:02:34 +0000 (+1100) Subject: Avoid freeing context on error X-Git-Tag: openssl-3.2.0-alpha1~1127 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6ec3d3125f76aa9f11c133333f868c42b9b585c4;p=thirdparty%2Fopenssl.git Avoid freeing context on error Freeing the allocated KDF context seems wrong when derive errors. Reviewed-by: Shane Lontis Reviewed-by: Tom Cosgrove (Merged from https://github.com/openssl/openssl/pull/20528) --- diff --git a/providers/implementations/kdfs/argon2.c b/providers/implementations/kdfs/argon2.c index cb9e69a7a35..768dcfe1bff 100644 --- a/providers/implementations/kdfs/argon2.c +++ b/providers/implementations/kdfs/argon2.c @@ -1025,7 +1025,6 @@ static int kdf_argon2_derive(void *vctx, unsigned char *out, size_t outlen, ctx->mac = EVP_MAC_fetch(ctx->libctx, "blake2bmac", ctx->propq); if (ctx->mac == NULL) { - OPENSSL_free(ctx); ERR_raise_data(ERR_LIB_PROV, PROV_R_MISSING_MAC, "cannot fetch blake2bmac"); return 0; @@ -1034,7 +1033,6 @@ static int kdf_argon2_derive(void *vctx, unsigned char *out, size_t outlen, ctx->md = EVP_MD_fetch(ctx->libctx, "blake2b512", ctx->propq); if (ctx->md == NULL) { EVP_MAC_free(ctx->mac); - OPENSSL_free(ctx); ERR_raise_data(ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST, "canot fetch blake2b512"); return 0;