diff options
Diffstat (limited to 'src/lib/libcrypto/pkcs7/pk7_smime.c')
-rw-r--r-- | src/lib/libcrypto/pkcs7/pk7_smime.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_smime.c b/src/lib/libcrypto/pkcs7/pk7_smime.c index d716f9faeb..3d3214f5ee 100644 --- a/src/lib/libcrypto/pkcs7/pk7_smime.c +++ b/src/lib/libcrypto/pkcs7/pk7_smime.c | |||
@@ -153,7 +153,7 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, | |||
153 | PKCS7_SIGNER_INFO *si; | 153 | PKCS7_SIGNER_INFO *si; |
154 | X509_STORE_CTX cert_ctx; | 154 | X509_STORE_CTX cert_ctx; |
155 | char buf[4096]; | 155 | char buf[4096]; |
156 | int i, j=0, k; | 156 | int i, j=0, k, ret = 0; |
157 | BIO *p7bio; | 157 | BIO *p7bio; |
158 | BIO *tmpout; | 158 | BIO *tmpout; |
159 | 159 | ||
@@ -258,18 +258,15 @@ int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, | |||
258 | } | 258 | } |
259 | } | 259 | } |
260 | 260 | ||
261 | sk_X509_free(signers); | 261 | ret = 1; |
262 | if(indata) BIO_pop(p7bio); | ||
263 | BIO_free_all(p7bio); | ||
264 | |||
265 | return 1; | ||
266 | 262 | ||
267 | err: | 263 | err: |
268 | 264 | ||
265 | if(indata) BIO_pop(p7bio); | ||
266 | BIO_free_all(p7bio); | ||
269 | sk_X509_free(signers); | 267 | sk_X509_free(signers); |
270 | BIO_free(p7bio); | ||
271 | 268 | ||
272 | return 0; | 269 | return ret; |
273 | } | 270 | } |
274 | 271 | ||
275 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags) | 272 | STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, int flags) |