From: Dr. Stephen Henson Date: Fri, 26 Mar 2004 00:24:38 +0000 (+0000) Subject: Free up BIO properly when using streaming S/MIME sign. X-Git-Tag: OpenSSL_0_9_7e~130^2~12 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=beedea2fefcb085250389f2987b52fe3e0e4975c;p=oweals%2Fopenssl.git Free up BIO properly when using streaming S/MIME sign. --- diff --git a/crypto/pkcs7/pk7_mime.c b/crypto/pkcs7/pk7_mime.c index 1823418465..210ec1e8c4 100644 --- a/crypto/pkcs7/pk7_mime.c +++ b/crypto/pkcs7/pk7_mime.c @@ -239,14 +239,13 @@ static int pkcs7_output_data(BIO *out, BIO *data, PKCS7 *p7, int flags) /* Finalize signatures */ PKCS7_dataFinal(p7, p7bio); - /* Now remove any digests from output BIO */ + /* Now remove any digests prepended to the BIO */ - while (1) + while (p7bio != out) { tmpbio = BIO_pop(p7bio); - if (tmpbio == out) - break; - BIO_free(tmpbio); + BIO_free(p7bio); + p7bio = tmpbio; } return 1;