Fix memleak in test/provider_test.c
authorRichard Levitte <levitte@openssl.org>
Tue, 26 Apr 2022 09:04:49 +0000 (11:04 +0200)
committerRichard Levitte <levitte@openssl.org>
Fri, 29 Apr 2022 11:22:39 +0000 (13:22 +0200)
This memory leak is triggered when configuring with 'no-legacy'

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/18179)

(cherry picked from commit 49d874e0b7514cb270e817103ff0e13d4689e1f0)

test/provider_test.c

index 807b8fcf22dac33d5ed4110c37c185930d41965d..11b7ee44a05ae0a886695d45a31420a16e113044 100644 (file)
@@ -191,12 +191,15 @@ static int test_builtin_provider_with_child(void)
          * In this case we assume we've been built with "no-legacy" and skip
          * this test (there is no OPENSSL_NO_LEGACY)
          */
+        OSSL_LIB_CTX_free(libctx);
         return 1;
     }
 
     if (!TEST_true(OSSL_PROVIDER_add_builtin(libctx, name,
-                                             PROVIDER_INIT_FUNCTION_NAME)))
+                                             PROVIDER_INIT_FUNCTION_NAME))) {
+        OSSL_LIB_CTX_free(libctx);
         return 0;
+    }
 
     /* test_provider will free libctx and unload legacy as part of the test */
     return test_provider(&libctx, name, legacy);