From: yuanjungong Date: Wed, 1 Sep 2021 03:33:34 +0000 (+0800) Subject: Clean up on failed BIO creation X-Git-Tag: openssl-3.2.0-alpha1~3441 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f11c01a666e9d5b97e859cbc74586802549dee00;p=thirdparty%2Fopenssl.git Clean up on failed BIO creation Reviewed-by: Shane Lontis Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/16316) --- diff --git a/apps/openssl.c b/apps/openssl.c index 2693350ffc9..e20661277e1 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -168,14 +168,17 @@ static void setup_trace_category(int category) { BIO *channel; tracedata *trace_data; + BIO *bio = NULL; if (OSSL_trace_enabled(category)) return; - channel = BIO_push(BIO_new(BIO_f_prefix()), dup_bio_err(FORMAT_TEXT)); + bio = BIO_new(BIO_f_prefix()); + channel = BIO_push(bio, dup_bio_err(FORMAT_TEXT)); trace_data = OPENSSL_zalloc(sizeof(*trace_data)); if (trace_data == NULL + || bio == NULL || (trace_data->bio = channel) == NULL || OSSL_trace_set_callback(category, internal_trace_cb, trace_data) == 0 diff --git a/test/testutil/testutil_init.c b/test/testutil/testutil_init.c index a91b0e4ba35..3301551ab2f 100644 --- a/test/testutil/testutil_init.c +++ b/test/testutil/testutil_init.c @@ -71,15 +71,18 @@ static void setup_trace_category(int category) { BIO *channel; tracedata *trace_data; + BIO *bio = NULL; if (OSSL_trace_enabled(category)) return; - channel = BIO_push(BIO_new(BIO_f_prefix()), + bio = BIO_new(BIO_f_prefix()); + channel = BIO_push(bio, BIO_new_fp(stderr, BIO_NOCLOSE | BIO_FP_TEXT)); trace_data = OPENSSL_zalloc(sizeof(*trace_data)); if (trace_data == NULL + || bio == NULL || (trace_data->bio = channel) == NULL || OSSL_trace_set_callback(category, internal_trace_cb, trace_data) == 0