diff options
| author | Dr. Stephen Henson <[email protected]> | 2006-04-15 19:42:46 +0200 |
|---|---|---|
| committer | Dr. Stephen Henson <[email protected]> | 2006-04-15 19:42:46 +0200 |
| commit | d4e81773cc1ccd50647ed0358a79b414e6647837 (patch) | |
| tree | 6b6039139bd61d1c5c09fa3e132cdee5f735755b | |
| parent | Typos. (diff) | |
| download | openssl-d4e81773cc1ccd50647ed0358a79b414e6647837.tar.gz openssl-d4e81773cc1ccd50647ed0358a79b414e6647837.zip | |
Check pbe2->keyfunc->parameter is not NULL before dereferencing.
PR: 1316
| -rw-r--r-- | crypto/evp/p5_crpt2.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/crypto/evp/p5_crpt2.c b/crypto/evp/p5_crpt2.c index 1f94e1ef88b..1d5fabc4b2a 100644 --- a/crypto/evp/p5_crpt2.c +++ b/crypto/evp/p5_crpt2.c @@ -194,11 +194,16 @@ int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, /* Now decode key derivation function */ + if(!pbe2->keyfunc->parameter || + (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE)) + { + EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR); + goto err; + } + pbuf = pbe2->keyfunc->parameter->value.sequence->data; plen = pbe2->keyfunc->parameter->value.sequence->length; - if(!pbe2->keyfunc->parameter || - (pbe2->keyfunc->parameter->type != V_ASN1_SEQUENCE) || - !(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) { + if(!(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) { EVPerr(EVP_F_PKCS5_V2_PBE_KEYIVGEN,EVP_R_DECODE_ERROR); goto err; } |
