From: Matt Caswell Date: Mon, 12 Mar 2018 13:56:34 +0000 (+0000) Subject: Improve error handling in pk7_doit X-Git-Tag: OpenSSL_1_0_2o~19 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c46343fe662df971755df6cf66c50e531b032745;p=oweals%2Fopenssl.git 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 (Merged from https://github.com/openssl/openssl/pull/5596) (cherry picked from commit 4718f449a3ecd5efac62b22d0fa9a759a7895dbc) --- diff --git a/crypto/pkcs7/pk7_doit.c b/crypto/pkcs7/pk7_doit.c index 6cf8253bc2..6a463680d7 100644 --- a/crypto/pkcs7/pk7_doit.c +++ b/crypto/pkcs7/pk7_doit.c @@ -375,16 +375,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);