From: Jiasheng Jiang Date: Thu, 26 Jun 2025 00:01:35 +0000 (+0000) Subject: apps/lib/apps.c: Add check for BIO_new() X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2fccd17e8feb91ef9b0cb949eb3fc04a384148ca;p=thirdparty%2Fopenssl.git apps/lib/apps.c: Add check for BIO_new() Add checks for the return value of BIO_new() to guarantee successful allocation, consistent with other usages. Fixes: a412b89 ("dup_bio_* and bio_open_* are utility functions and belong in apps.c") Signed-off-by: Jiasheng Jiang Reviewed-by: Paul Dale Reviewed-by: Matt Caswell Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/27894) --- diff --git a/apps/lib/apps.c b/apps/lib/apps.c index d4e72307de5..33047c00112 100644 --- a/apps/lib/apps.c +++ b/apps/lib/apps.c @@ -3048,18 +3048,30 @@ BIO *dup_bio_out(int format) BIO *b = BIO_new_fp(stdout, BIO_NOCLOSE | (FMT_istext(format) ? BIO_FP_TEXT : 0)); void *prefix = NULL; + BIO *btmp; if (b == NULL) return NULL; #ifdef OPENSSL_SYS_VMS - if (FMT_istext(format)) - b = BIO_push(BIO_new(BIO_f_linebuffer()), b); + if (FMT_istext(format)) { + btmp = BIO_new(BIO_f_linebuffer()); + if (btmp == NULL) { + BIO_free(b); + return NULL; + } + b = BIO_push(btmp, b); + } #endif if (FMT_istext(format) && (prefix = getenv("HARNESS_OSSL_PREFIX")) != NULL) { - b = BIO_push(BIO_new(BIO_f_prefix()), b); + btmp = BIO_new(BIO_f_prefix()); + if (btmp == NULL) { + BIO_free_all(b); + return NULL; + } + b = BIO_push(btmp, b); BIO_set_prefix(b, prefix); } @@ -3072,8 +3084,15 @@ BIO *dup_bio_err(int format) BIO_NOCLOSE | (FMT_istext(format) ? BIO_FP_TEXT : 0)); #ifdef OPENSSL_SYS_VMS - if (b != NULL && FMT_istext(format)) - b = BIO_push(BIO_new(BIO_f_linebuffer()), b); + if (b != NULL && FMT_istext(format)) { + BIO *btmp = BIO_new(BIO_f_linebuffer()); + + if (btmp == NULL) { + BIO_free(b); + return NULL; + } + b = BIO_push(btmp, b); + } #endif return b; }