From: Tomas Mraz Date: Tue, 7 Jun 2022 16:49:29 +0000 (+0200) Subject: Check return of BIO_new() and always free pkey from evp_pkey_copy_downgraded() X-Git-Tag: openssl-3.2.0-alpha1~2543 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d8732803c493cba7a863c5c16da62ee9d611c5ca;p=thirdparty%2Fopenssl.git Check return of BIO_new() and always free pkey from evp_pkey_copy_downgraded() Reviewed-by: Shane Lontis Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/18494) --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index ed228a1bd43..db1822f0d1b 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -1123,8 +1123,11 @@ static int print_set_indent(BIO **out, int *pop_f_prefix, long *saved_indent, *saved_indent = (i < 0 ? 0 : i); if (BIO_set_indent(*out, indent) <= 0) { - if ((*out = BIO_push(BIO_new(BIO_f_prefix()), *out)) == NULL) + BIO *prefbio = BIO_new(BIO_f_prefix()); + + if (prefbio == NULL) return 0; + *out = BIO_push(prefbio, *out); *pop_f_prefix = 1; } if (BIO_set_indent(*out, indent) <= 0) { @@ -2090,7 +2093,7 @@ void *evp_pkey_get_legacy(EVP_PKEY *pk) return ret; if (!evp_pkey_copy_downgraded(&tmp_copy, pk)) - return NULL; + goto err; if (!CRYPTO_THREAD_write_lock(pk->lock)) goto err;