]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
test/provider_fallback_test.c: Add OSSL_PROVIDER_unload() to avoid memory leak
authorJiasheng Jiang <jiashengjiangcool@outlook.com>
Tue, 6 Aug 2024 18:42:06 +0000 (18:42 +0000)
committerTomas Mraz <tomas@openssl.org>
Wed, 21 Aug 2024 13:37:05 +0000 (15:37 +0200)
Add OSSL_PROVIDER_unload() when test_provider() fails to avoid memory leak.

Fixes: f995e5bdcd ("TEST: Add provider_fallback_test, to test aspects of
fallback providers")
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@outlook.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/25108)

test/provider_fallback_test.c

index 5902f57c85e723c083c91bef3c8ec111fef30fc4..f5c1ec52c6642e1193b37c1d934ab362e5fec226 100644 (file)
@@ -39,9 +39,15 @@ static int test_explicit_provider(void)
     int ok;
 
     ok = TEST_ptr(ctx = OSSL_LIB_CTX_new())
-        && TEST_ptr(prov = OSSL_PROVIDER_load(ctx, "default"))
-        && test_provider(ctx)
-        && TEST_true(OSSL_PROVIDER_unload(prov));
+        && TEST_ptr(prov = OSSL_PROVIDER_load(ctx, "default"));
+
+    if (ok) {
+        ok = test_provider(ctx);
+        if (ok)
+            ok = TEST_true(OSSL_PROVIDER_unload(prov));
+        else
+            OSSL_PROVIDER_unload(prov);
+    }
 
     OSSL_LIB_CTX_free(ctx);
     return ok;