]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
test/helpers/quictestlib.c: Use goto instead of return to avoid memory leak
authorJiashengJiang <jiasheng@purdue.edu>
Mon, 12 May 2025 13:59:02 +0000 (09:59 -0400)
committerTomas Mraz <tomas@openssl.org>
Fri, 13 Jun 2025 10:28:59 +0000 (12:28 +0200)
When TEST_ptr(*cssl) fails, bdata should be freed to avoid memory leak.

Fixes: a55b689 ("Use reported short conn id len in qtestlib")
Signed-off-by: JiashengJiang <jiasheng@purdue.edu>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27599)

test/helpers/quictestlib.c

index 166e102a2dece5b5cdda4b658bdff1889e2a520c..420d3b5acd584fc46be5c3a001f0c358f32cb091 100644 (file)
@@ -164,11 +164,6 @@ int qtest_create_quic_objects(OSSL_LIB_CTX *libctx, SSL_CTX *clientctx,
         return 0;
 
     *qtserv = NULL;
-    if (*cssl == NULL) {
-        *cssl = SSL_new(clientctx);
-        if (!TEST_ptr(*cssl))
-            return 0;
-    }
 
     if (fault != NULL) {
         *fault = OPENSSL_zalloc(sizeof(**fault));
@@ -177,6 +172,12 @@ int qtest_create_quic_objects(OSSL_LIB_CTX *libctx, SSL_CTX *clientctx,
         bdata->fault = *fault;
     }
 
+    if (*cssl == NULL) {
+        *cssl = SSL_new(clientctx);
+        if (!TEST_ptr(*cssl))
+            goto err;
+    }
+
 #ifndef OPENSSL_NO_SSL_TRACE
     if ((flags & QTEST_FLAG_CLIENT_TRACE) != 0) {
         tmpbio = BIO_new_fp(stdout, BIO_NOCLOSE);