summaryrefslogtreecommitdiffstats
path: root/crypto/pkcs7
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2006-07-09 12:02:08 +0000
committerDr. Stephen Henson <steve@openssl.org>2006-07-09 12:02:08 +0000
commit067707e3673c78aa369ab84445c625719557cf8c (patch)
tree366325a4cf3bcf4a8d71b596de88a27d2d2a60e8 /crypto/pkcs7
parent8211a33c7f37e58063d1294d8df294c7d9a1c1bf (diff)
Set detached flag in PKCS7 structure earlier to avoid eating up memory.
PR: 1071
Diffstat (limited to 'crypto/pkcs7')
-rw-r--r--crypto/pkcs7/pk7_smime.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/crypto/pkcs7/pk7_smime.c b/crypto/pkcs7/pk7_smime.c
index f8e3682aa9..718f0db0ef 100644
--- a/crypto/pkcs7/pk7_smime.c
+++ b/crypto/pkcs7/pk7_smime.c
@@ -98,6 +98,9 @@ PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs,
}
}
+ if(flags & PKCS7_DETACHED)
+ PKCS7_set_detached(p7, 1);
+
if (flags & (PKCS7_STREAM|PKCS7_PARTIAL))
return p7;
@@ -123,8 +126,6 @@ int PKCS7_final(PKCS7 *p7, BIO *data, int flags)
BIO_flush(p7bio);
- if(PKCS7_type_is_signed(p7) && (flags & PKCS7_DETACHED))
- PKCS7_set_detached(p7, 1);
if (!PKCS7_dataFinal(p7,p7bio))
{