44 lines
1.5 KiB
Diff
44 lines
1.5 KiB
Diff
From ed4faae00cdab23244704660c099e41ec64f5dc0 Mon Sep 17 00:00:00 2001
|
|
From: "Dr. David von Oheimb" <David.von.Oheimb@siemens.com>
|
|
Date: Wed, 12 Aug 2020 17:37:50 +0200
|
|
Subject: [PATCH] Fix mem leaks on PKCS#12 read error in
|
|
PKCS12_key_gen_{asc,utf8}
|
|
|
|
Reviewed-by: Richard Levitte <levitte@openssl.org>
|
|
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
|
|
(Merged from https://github.com/openssl/openssl/pull/12639)
|
|
---
|
|
crypto/pkcs12/p12_key.c | 8 ++------
|
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/crypto/pkcs12/p12_key.c b/crypto/pkcs12/p12_key.c
|
|
index a40ae4cbe8..bbe212d125 100644
|
|
--- a/crypto/pkcs12/p12_key.c
|
|
+++ b/crypto/pkcs12/p12_key.c
|
|
@@ -44,10 +44,8 @@ int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt,
|
|
}
|
|
ret = PKCS12_key_gen_uni(unipass, uniplen, salt, saltlen,
|
|
id, iter, n, out, md_type);
|
|
- if (ret <= 0)
|
|
- return 0;
|
|
OPENSSL_clear_free(unipass, uniplen);
|
|
- return ret;
|
|
+ return ret > 0;
|
|
}
|
|
|
|
int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt,
|
|
@@ -67,10 +65,8 @@ int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt,
|
|
}
|
|
ret = PKCS12_key_gen_uni(unipass, uniplen, salt, saltlen,
|
|
id, iter, n, out, md_type);
|
|
- if (ret <= 0)
|
|
- return 0;
|
|
OPENSSL_clear_free(unipass, uniplen);
|
|
- return ret;
|
|
+ return ret > 0;
|
|
}
|
|
|
|
int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt,
|
|
--
|
|
2.27.0
|