From 60d391b6f0178e1f1afac242db460a14590bc03e Mon Sep 17 00:00:00 2001 From: Milan Broz Date: Sat, 29 Oct 2022 11:46:34 +0200 Subject: pem: fix a memory leak in PEM_write_bio_PrivateKey_traditional The copy of PKEY should be released on the error path. Easily reproduced with "ED448" context. Signed-off-by: Milan Broz Reviewed-by: Dmitry Belyavskiy Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/19536) (cherry picked from commit 608aca8ed2becccfe9c238846834ea2b162fc98b) --- crypto/pem/pem_pkey.c | 1 + 1 file changed, 1 insertion(+) diff --git a/crypto/pem/pem_pkey.c b/crypto/pem/pem_pkey.c index f9346486dd..53367c03db 100644 --- a/crypto/pem/pem_pkey.c +++ b/crypto/pem/pem_pkey.c @@ -343,6 +343,7 @@ int PEM_write_bio_PrivateKey_traditional(BIO *bp, const EVP_PKEY *x, if (x->ameth == NULL || x->ameth->old_priv_encode == NULL) { ERR_raise(ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE); + EVP_PKEY_free(copy); return 0; } BIO_snprintf(pem_str, 80, "%s PRIVATE KEY", x->ameth->pem_str); -- cgit v1.2.3