Commit c46343fe authored by Matt Caswell's avatar Matt Caswell
Browse files

Improve error handling in pk7_doit



If a mem allocation failed we would ignore it. This commit fixes it to
always check.

Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/5596)

(cherry picked from commit 4718f449)
parent d777ca49
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -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);