Fix RESOURCE_LEAK defect 52/324852/7
authortranthanhtung2001 <tran.tung@samsung.com>
Wed, 28 May 2025 02:33:04 +0000 (09:33 +0700)
committertranthanhtung2001 <tran.tung@samsung.com>
Wed, 28 May 2025 07:48:07 +0000 (14:48 +0700)
Change-Id: I5854b7a3b96d667d9d3319e2177c576a11725285

unit-tests/test_common.h
unit-tests/test_vcore_api.cpp
unit-tests/test_vcore_api_pkcs12.cpp

index f3138f85de93b3e76e52971afba01accd65ae17f..8893c4433e919d3a674702f743374adaa1c726c7 100644 (file)
 #include "cert-svc/cinstance.h"
 #include "cert-svc/cpkcs12.h"
 
+#define SafeFree(var) { \
+       if (var != NULL) { \
+               free(var); \
+               var = NULL; \
+       } \
+}
+
 using namespace ValidationCore;
 
 struct RenamePluginFileFixture {
index 6d51d33969208407f83eedabdf7754ace2a35ea3..2a9d81d1ed5e9ebd74d5d6e8392768b5525438a5 100644 (file)
@@ -202,13 +202,16 @@ NEGATIVE_TEST_CASE(T_certsvc_check_certificate_info_from_store_with_wrong_parame
 
        result = certsvc_pkcs12_get_certificate_info_from_store(instance, NONE_STORE, alias, &certBuffer, &certLength);
        BOOST_CHECK_EQUAL(result, CERTSVC_INVALID_STORE_TYPE);
+       SafeFree(certBuffer);
 
        char *aliasName = NULL;
        result = certsvc_pkcs12_get_alias_name_for_certificate_in_store(instance, SYSTEM_STORE, aliasEmpty, &aliasName);
        BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
+       SafeFree(aliasName);
 
        result = certsvc_pkcs12_get_alias_name_for_certificate_in_store(instance, NONE_STORE, alias, &aliasName);
        BOOST_CHECK_EQUAL(result, CERTSVC_INVALID_STORE_TYPE);
+       SafeFree(aliasName);
 
        certsvc_string_free(alias);
        certsvc_string_free(aliasEmpty);
index 5965da0cc079a1bab1cbe00198cfb4bf4f1fcf1b..e3cbcb2fd18beb97ea6c4c66dd568ec450cb45c8 100644 (file)
@@ -272,14 +272,13 @@ void getAliasNameForCertificateInStore(
        if (expected == CERTSVC_SUCCESS) {
                BOOST_CHECK(alias);
                BOOST_CHECK(strlen(alias) > 0);
-               free(alias);
        } else if (expected == CERTSVC_FAIL) {
                BOOST_CHECK(alias);
                BOOST_CHECK(strlen(alias) == 0);
        } else {
                BOOST_CHECK(!alias);
        }
-
+       SafeFree(alias);
 }
 
 void setCertStatusToStore(
@@ -344,11 +343,11 @@ void getPrivateKeyFromStore(CertStoreType storeType, CertSvcString gNameStr,int
        if (expected == CERTSVC_SUCCESS) {
                BOOST_CHECK(buffer);
                BOOST_CHECK(size > 0);
-               free(buffer);
        } else {
                BOOST_CHECK(!buffer);
                BOOST_CHECK(size == 0);
        }
+       SafeFree(buffer);
 }
 
 void getEvpPrivateKeyFromStore(CertStoreType storeType, CertSvcString gNameStr,int expected)
@@ -630,10 +629,14 @@ NEGATIVE_TEST_CASE(T_certsvc_pkcs12_get_certificate_list_from_none_store)
        BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
 
        getCertListFromStore(NONE_STORE, DISABLED, &certList, CERTSVC_INVALID_STORE_TYPE);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
+
        getCertListFromStore(NONE_STORE, ENABLED, &certList, CERTSVC_INVALID_STORE_TYPE);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
 
        CertSvcStoreCertList *certList1;
        getCertListFromStore(WIFI_STORE, DISABLED, &certList1, CERTSVC_WRONG_ARGUMENT);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList1);
 
        certsvc_instance_free(instance);
 }
@@ -701,11 +704,16 @@ NEGATIVE_TEST_CASE(T_certsvc_pkcs12_get_end_user_certificate_list_from_store_inv
        BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
 
        getEndUserCertListFromStores(&certList, WIFI_STORE, CERTSVC_WRONG_ARGUMENT);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
 
-       certList = NULL;
        getEndUserCertListFromStores(&certList, NONE_STORE, CERTSVC_INVALID_STORE_TYPE);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
+
        getEndUserCertListFromStores(&certList, SYSTEM_STORE, CERTSVC_WRONG_ARGUMENT);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
+
        getEndUserCertListFromStores(&certList, ALL_STORE, CERTSVC_WRONG_ARGUMENT);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
 
        certsvc_instance_free(instance);
 }
@@ -738,9 +746,10 @@ NEGATIVE_TEST_CASE(T_certsvc_pkcs12_get_root_certificate_list_from_store_wrong_a
        BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
 
        getRootCertListFromStores(&certList, WIFI_STORE, CERTSVC_WRONG_ARGUMENT);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
 
-       certList = NULL;
        getRootCertListFromStores(&certList, NONE_STORE, CERTSVC_INVALID_STORE_TYPE);
+       certsvc_pkcs12_free_certificate_list_loaded_from_store(instance, &certList);
 
        certsvc_instance_free(instance);
 }