diff options
author | Matt Caswell <matt@openssl.org> | 2018-03-12 13:56:34 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2018-03-12 19:18:13 +0000 |
commit | 7e454ca3660af9416dcea0195ebe86fc3ff2fd80 (patch) | |
tree | 3aaec9d135b9873d5dd9b1e631f26f6ce7e9df29 | |
parent | cd70b642322a78eb9f2e6e09185326498eebe2d0 (diff) |
Improve error handling in pk7_doit
If a mem allocation failed we would ignore it. This commit fixes it to
always check.
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5596)
(cherry picked from commit 4718f449a3ecd5efac62b22d0fa9a759a7895dbc)
-rw-r--r-- | crypto/pkcs7/pk7_doit.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c index bc6bd30fc3..e4bb5f10d3 100644 --- a/crypto/pkcs7/pk7_doit.c +++ b/crypto/pkcs7/pk7_doit.c @@ -316,16 +316,18 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio) } if (bio == NULL) { - if (PKCS7_is_detached(p7)) + if (PKCS7_is_detached(p7)) { bio = BIO_new(BIO_s_null()); - else if (os && os->length > 0) + } else if (os && os->length > 0) { bio = BIO_new_mem_buf(os->data, os->length); - if (bio == NULL) { + } else { bio = BIO_new(BIO_s_mem()); if (bio == NULL) goto err; BIO_set_mem_eof_return(bio, 0); } + if (bio == NULL) + goto err; } if (out) BIO_push(out, bio); |