summaryrefslogtreecommitdiffstats
path: root/crypto/pkcs12/p12_decr.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2009-09-23 23:43:49 +0000
committerDr. Stephen Henson <steve@openssl.org>2009-09-23 23:43:49 +0000
commitb6dcdbfc94c482f6c15ba725754fc9e827e41851 (patch)
tree9fec84d4564530bc97b42d56e01a64abb96adac3 /crypto/pkcs12/p12_decr.c
parentcd4f7cddc7994d23d48b86cf638541c6e2310c2d (diff)
Audit libcrypto for unchecked return values: fix all cases enountered
Diffstat (limited to 'crypto/pkcs12/p12_decr.c')
-rw-r--r--crypto/pkcs12/p12_decr.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/crypto/pkcs12/p12_decr.c b/crypto/pkcs12/p12_decr.c
index ba77dbbe32..5dcb55b16b 100644
--- a/crypto/pkcs12/p12_decr.c
+++ b/crypto/pkcs12/p12_decr.c
@@ -89,7 +89,15 @@ 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;
+
outlen = i;
if(!EVP_CipherFinal_ex(&ctx, out + i, &i)) {
OPENSSL_free(out);