summaryrefslogtreecommitdiff
path: root/app/openssl/crypto/pkcs7/pk7_doit.c
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2014-11-25 13:19:21 +0100
committerParménides GV <parmegv@sdf.org>2014-11-25 13:19:21 +0100
commit576b0c26baf9b5b1418650a572604325ca7fb3af (patch)
tree8b2986d66ed4e6bdf5a3253c81f32cc5a8e53b99 /app/openssl/crypto/pkcs7/pk7_doit.c
parentbbf877a099112acbf34589b01503c3f5ee135dc0 (diff)
parent48cd0f2fa3094b5a6b7b07d6413d77bdbc9bbc20 (diff)
Merge branch 'develop'0.8.0
Diffstat (limited to 'app/openssl/crypto/pkcs7/pk7_doit.c')
-rw-r--r--app/openssl/crypto/pkcs7/pk7_doit.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/app/openssl/crypto/pkcs7/pk7_doit.c b/app/openssl/crypto/pkcs7/pk7_doit.c
index 77fda3b8..d91aa116 100644
--- a/app/openssl/crypto/pkcs7/pk7_doit.c
+++ b/app/openssl/crypto/pkcs7/pk7_doit.c
@@ -440,6 +440,11 @@ BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert)
{
case NID_pkcs7_signed:
data_body=PKCS7_get_octet_string(p7->d.sign->contents);
+ if (!PKCS7_is_detached(p7) && data_body == NULL)
+ {
+ PKCS7err(PKCS7_F_PKCS7_DATADECODE,PKCS7_R_INVALID_SIGNED_DATA_TYPE);
+ goto err;
+ }
md_sk=p7->d.sign->md_algs;
break;
case NID_pkcs7_signedAndEnveloped:
@@ -928,6 +933,7 @@ int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si)
if (EVP_DigestSignUpdate(&mctx,abuf,alen) <= 0)
goto err;
OPENSSL_free(abuf);
+ abuf = NULL;
if (EVP_DigestSignFinal(&mctx, NULL, &siglen) <= 0)
goto err;
abuf = OPENSSL_malloc(siglen);