diff options
| author | miod <> | 2016-11-05 13:02:34 +0000 |
|---|---|---|
| committer | miod <> | 2016-11-05 13:02:34 +0000 |
| commit | 470d7eab67cc31c2d7a2cd10f48f93eb02ac3dcc (patch) | |
| tree | c1ec2d42b911b07a042269ab0d3b1fec697cda61 | |
| parent | 1c4e965dcf73156663e7ab7a558dfc172656287b (diff) | |
| download | openbsd-470d7eab67cc31c2d7a2cd10f48f93eb02ac3dcc.tar.gz openbsd-470d7eab67cc31c2d7a2cd10f48f93eb02ac3dcc.tar.bz2 openbsd-470d7eab67cc31c2d7a2cd10f48f93eb02ac3dcc.zip | |
Do not leak the ressources possibly allocated by EVP_MD_CTX_init() in the
trivial error path of PKCS12_key_gen_uni().
ok beck@ jsing@
| -rw-r--r-- | src/lib/libcrypto/pkcs12/p12_key.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/lib/libcrypto/pkcs12/p12_key.c b/src/lib/libcrypto/pkcs12/p12_key.c index 38f8a8194c..891f764c23 100644 --- a/src/lib/libcrypto/pkcs12/p12_key.c +++ b/src/lib/libcrypto/pkcs12/p12_key.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: p12_key.c,v 1.23 2015/09/10 15:56:25 jsing Exp $ */ | 1 | /* $OpenBSD: p12_key.c,v 1.24 2016/11/05 13:02:34 miod Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 1999. | 3 | * project 1999. |
| 4 | */ | 4 | */ |
| @@ -107,11 +107,12 @@ PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, | |||
| 107 | BIGNUM *Ij, *Bpl1; /* These hold Ij and B + 1 */ | 107 | BIGNUM *Ij, *Bpl1; /* These hold Ij and B + 1 */ |
| 108 | EVP_MD_CTX ctx; | 108 | EVP_MD_CTX ctx; |
| 109 | 109 | ||
| 110 | EVP_MD_CTX_init(&ctx); | ||
| 111 | v = EVP_MD_block_size(md_type); | 110 | v = EVP_MD_block_size(md_type); |
| 112 | u = EVP_MD_size(md_type); | 111 | u = EVP_MD_size(md_type); |
| 113 | if (u < 0) | 112 | if (u < 0) |
| 114 | return 0; | 113 | return 0; |
| 114 | |||
| 115 | EVP_MD_CTX_init(&ctx); | ||
| 115 | D = malloc(v); | 116 | D = malloc(v); |
| 116 | Ai = malloc(u); | 117 | Ai = malloc(u); |
| 117 | B = malloc(v + 1); | 118 | B = malloc(v + 1); |
