Skip to content

Commit 344e4e6

Browse files
Fix memory leak in get_loader_settings
Caused by the result value containing a spurious initialization failed error code.
1 parent 3af5482 commit 344e4e6

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

loader/settings.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,8 +748,10 @@ VkResult get_loader_settings(const struct loader_instance* inst, loader_settings
748748
cJSON* stderr_filter = loader_cJSON_GetObjectItem(settings_to_use, "stderr_log");
749749
if (NULL != stderr_filter) {
750750
struct loader_string_list stderr_log = {0};
751-
res = loader_parse_json_array_of_strings(inst, settings_to_use, "stderr_log", &stderr_log);
752-
if (VK_ERROR_OUT_OF_HOST_MEMORY == res) {
751+
VkResult stderr_log_result = VK_SUCCESS;
752+
stderr_log_result = loader_parse_json_array_of_strings(inst, settings_to_use, "stderr_log", &stderr_log);
753+
if (VK_ERROR_OUT_OF_HOST_MEMORY == stderr_log_result) {
754+
res = VK_ERROR_OUT_OF_HOST_MEMORY;
753755
goto out;
754756
}
755757
loader_settings->debug_level = parse_log_filters_from_strings(&stderr_log);

tests/loader_fuzz_tests.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -287,3 +287,6 @@ TEST(BadJsonInput, ClusterFuzzTestCase_5123849246867456) {
287287
// Causes a leak - settings_fuzzer: Direct-leak in loader_append_layer_property
288288
execute_setting_fuzzer("clusterfuzz-testcase-minimized-settings_fuzzer-5123849246867456");
289289
}
290+
TEST(BadJsonInput, ClusterFuzzTestCase_4626669072875520) {
291+
execute_setting_fuzzer("clusterfuzz-testcase-minimized-settings_fuzzer-4626669072875520");
292+
}

0 commit comments

Comments
 (0)