]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Clean up on failed BIO creation
authoryuanjungong <yuanjungong96@gmail.com>
Wed, 1 Sep 2021 03:33:34 +0000 (11:33 +0800)
committerTomas Mraz <tomas@openssl.org>
Fri, 22 Oct 2021 09:56:29 +0000 (11:56 +0200)
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/16316)

apps/openssl.c
test/testutil/testutil_init.c

index 2693350ffc941bec58147973462c18d1212e1cfa..e20661277e19854895634ef5cc4565ef6caf467d 100644 (file)
@@ -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
index a91b0e4ba351c1c246962a314a21a256364725cb..3301551ab2f7d63d280b3c0c4e2e56e481d31647 100644 (file)
@@ -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