diff options
author | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2020-08-12 17:37:50 +0200 |
---|---|---|
committer | Dr. David von Oheimb <David.von.Oheimb@siemens.com> | 2020-08-20 14:28:24 +0200 |
commit | ed4faae00cdab23244704660c099e41ec64f5dc0 (patch) | |
tree | c1c74387c204551b5d56fe966e2421649bef6d04 /crypto/pkcs12 | |
parent | 5f2b7db09b6f9650ecf2b465ee9f737385623bd5 (diff) | |
download | openssl-new-ed4faae00cdab23244704660c099e41ec64f5dc0.tar.gz |
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)
Diffstat (limited to 'crypto/pkcs12')
-rw-r--r-- | crypto/pkcs12/p12_key.c | 8 |
1 files 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 @@ -33,10 +33,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, @@ -56,10 +54,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, |