summaryrefslogtreecommitdiff
path: root/main/openssl/crypto/pkcs12/p12_decr.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/openssl/crypto/pkcs12/p12_decr.c')
-rw-r--r--main/openssl/crypto/pkcs12/p12_decr.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/main/openssl/crypto/pkcs12/p12_decr.c b/main/openssl/crypto/pkcs12/p12_decr.c
index ba77dbbe..9d3557e8 100644
--- a/main/openssl/crypto/pkcs12/p12_decr.c
+++ b/main/openssl/crypto/pkcs12/p12_decr.c
@@ -89,7 +89,14 @@ unsigned char * PKCS12_pbe_crypt(X509_ALGOR *algor, const char *pass,
goto err;
}
- EVP_CipherUpdate(&ctx, out, &i, in, inlen);
+ if (!EVP_CipherUpdate(&ctx, out, &i, in, inlen))
+ {
+ OPENSSL_free(out);
+ out = NULL;
+ PKCS12err(PKCS12_F_PKCS12_PBE_CRYPT,ERR_R_EVP_LIB);
+ goto err;
+ }
+
outlen = i;
if(!EVP_CipherFinal_ex(&ctx, out + i, &i)) {
OPENSSL_free(out);