From: Matt Caswell Date: Mon, 21 Aug 2023 11:19:44 +0000 (+0100) Subject: Fix a leak in ossl_encode_ctx_setup_for_pkey X-Git-Tag: openssl-3.2.0-alpha1~180 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8ef63b6ff8301a0139c00df6c40173a63fd2db01;p=thirdparty%2Fopenssl.git Fix a leak in ossl_encode_ctx_setup_for_pkey Make sure we free the stack of names we allocated in an error path. Found by the reproducible error patch in #21668 Reviewed-by: Tomas Mraz Reviewed-by: Dmitry Belyavskiy (Merged from https://github.com/openssl/openssl/pull/21796) --- diff --git a/crypto/encode_decode/encoder_pkey.c b/crypto/encode_decode/encoder_pkey.c index 6954343422a..d482260102b 100644 --- a/crypto/encode_decode/encoder_pkey.c +++ b/crypto/encode_decode/encoder_pkey.c @@ -284,8 +284,10 @@ static int ossl_encoder_ctx_setup_for_pkey(OSSL_ENCODER_CTX *ctx, end = sk_OPENSSL_CSTRING_num(encoder_data.names); if (end > 0) { encoder_data.id_names = OPENSSL_malloc(end * sizeof(int)); - if (encoder_data.id_names == NULL) + if (encoder_data.id_names == NULL) { + sk_OPENSSL_CSTRING_free(keymgmt_data.names); goto err; + } for (i = 0; i < end; ++i) { const char *name = sk_OPENSSL_CSTRING_value(keymgmt_data.names, i);