aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDr. Stephen Henson <[email protected]>2006-04-15 19:42:46 +0200
committerDr. Stephen Henson <[email protected]>2006-04-15 19:42:46 +0200
commitd4e81773cc1ccd50647ed0358a79b414e6647837 (patch)
tree6b6039139bd61d1c5c09fa3e132cdee5f735755b
parentTypos. (diff)
downloadopenssl-d4e81773cc1ccd50647ed0358a79b414e6647837.tar.gz
openssl-d4e81773cc1ccd50647ed0358a79b414e6647837.zip
Check pbe2->keyfunc->parameter is not NULL before dereferencing.
PR: 1316
-rw-r--r--crypto/evp/p5_crpt2.c11
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;
}