Skip to content

Commit 656361b

Browse files
committed
[coverity] Fix 1566354 Resource leak
In the `test-platform` conformance test suite, ensure that the `ur_loader_config_handle_t` is always cleaned up even in the event of assert failures in `SetUp()` by releasing it in `TearDown()`.
1 parent 5230505 commit 656361b

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

test/conformance/platform/fixtures.h

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ struct urTest : ::testing::Test {
1414

1515
void SetUp() override {
1616
ur_device_init_flags_t device_flags = 0;
17-
ur_loader_config_handle_t config;
18-
ASSERT_SUCCESS(urLoaderConfigCreate(&config));
19-
ASSERT_SUCCESS(
20-
urLoaderConfigEnableLayer(config, "UR_LAYER_FULL_VALIDATION"));
21-
ASSERT_SUCCESS(urInit(device_flags, config));
22-
ASSERT_SUCCESS(urLoaderConfigRelease(config));
17+
ASSERT_SUCCESS(urLoaderConfigCreate(&loader_config));
18+
ASSERT_SUCCESS(urLoaderConfigEnableLayer(loader_config,
19+
"UR_LAYER_FULL_VALIDATION"));
20+
ASSERT_SUCCESS(urInit(device_flags, loader_config));
2321

2422
uint32_t adapter_count;
2523
ASSERT_SUCCESS(urAdapterGet(0, nullptr, &adapter_count));
@@ -31,10 +29,14 @@ struct urTest : ::testing::Test {
3129
for (auto adapter : adapters) {
3230
ASSERT_SUCCESS(urAdapterRelease(adapter));
3331
}
32+
if (loader_config) {
33+
ASSERT_SUCCESS(urLoaderConfigRelease(loader_config));
34+
}
3435
ur_tear_down_params_t tear_down_params{};
3536
ASSERT_SUCCESS(urTearDown(&tear_down_params));
3637
}
3738

39+
ur_loader_config_handle_t loader_config = nullptr;
3840
std::vector<ur_adapter_handle_t> adapters;
3941
};
4042

0 commit comments

Comments
 (0)