diff options
author | 2015-02-14 15:49:51 +0000 | |
---|---|---|
committer | 2015-02-14 15:49:51 +0000 | |
commit | d2ca4ffd20a446fd2d0b905284cd1177b29d9997 (patch) | |
tree | affded1d3a94ea5935fcc11e2c6980ae7d913a0e /lib/libssl/src | |
parent | Remove DEBUG_PKCS5V2 code. (diff) | |
download | wireguard-openbsd-d2ca4ffd20a446fd2d0b905284cd1177b29d9997.tar.xz wireguard-openbsd-d2ca4ffd20a446fd2d0b905284cd1177b29d9997.zip |
1.18 would introduce a possible out-of-bounds access in the error path;
Coverity CID 105346
ok doug@
Diffstat (limited to 'lib/libssl/src')
-rw-r--r-- | lib/libssl/src/crypto/evp/p5_crpt2.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/lib/libssl/src/crypto/evp/p5_crpt2.c b/lib/libssl/src/crypto/evp/p5_crpt2.c index 6fc88a0437a..afafb9551f8 100644 --- a/lib/libssl/src/crypto/evp/p5_crpt2.c +++ b/lib/libssl/src/crypto/evp/p5_crpt2.c @@ -1,4 +1,4 @@ -/* $OpenBSD: p5_crpt2.c,v 1.19 2015/02/14 15:45:21 miod Exp $ */ +/* $OpenBSD: p5_crpt2.c,v 1.20 2015/02/14 15:49:51 miod Exp $ */ /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL * project 1999. */ @@ -236,19 +236,19 @@ PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, if (EVP_CIPHER_CTX_cipher(ctx) == NULL) { EVPerr(EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN, EVP_R_NO_CIPHER_SET); - goto err; + return 0; } keylen = EVP_CIPHER_CTX_key_length(ctx); if (keylen > sizeof key) { EVPerr(EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN, EVP_R_BAD_KEY_LENGTH); - goto err; + return 0; } /* Decode parameter */ if (!param || (param->type != V_ASN1_SEQUENCE)) { EVPerr(EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN, EVP_R_DECODE_ERROR); - goto err; + return 0; } pbuf = param->value.sequence->data; @@ -256,11 +256,9 @@ PKCS5_v2_PBKDF2_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, if (!(kdf = d2i_PBKDF2PARAM(NULL, &pbuf, plen)) ) { EVPerr(EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN, EVP_R_DECODE_ERROR); - goto err; + return 0; } - keylen = EVP_CIPHER_CTX_key_length(ctx); - /* Now check the parameters of the kdf */ if (kdf->keylength && |