diff --git a/loader/settings.c b/loader/settings.c index 38667edab..365cfb9d0 100644 --- a/loader/settings.c +++ b/loader/settings.c @@ -748,8 +748,10 @@ VkResult get_loader_settings(const struct loader_instance* inst, loader_settings cJSON* stderr_filter = loader_cJSON_GetObjectItem(settings_to_use, "stderr_log"); if (NULL != stderr_filter) { struct loader_string_list stderr_log = {0}; - res = loader_parse_json_array_of_strings(inst, settings_to_use, "stderr_log", &stderr_log); - if (VK_ERROR_OUT_OF_HOST_MEMORY == res) { + VkResult stderr_log_result = VK_SUCCESS; + stderr_log_result = loader_parse_json_array_of_strings(inst, settings_to_use, "stderr_log", &stderr_log); + if (VK_ERROR_OUT_OF_HOST_MEMORY == stderr_log_result) { + res = VK_ERROR_OUT_OF_HOST_MEMORY; goto out; } loader_settings->debug_level = parse_log_filters_from_strings(&stderr_log); diff --git a/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-settings_fuzzer-4626669072875520 b/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-settings_fuzzer-4626669072875520 new file mode 100644 index 000000000..ad9eccc99 Binary files /dev/null and b/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-settings_fuzzer-4626669072875520 differ diff --git a/tests/loader_fuzz_tests.cpp b/tests/loader_fuzz_tests.cpp index 4298ecf33..7e3ba0593 100644 --- a/tests/loader_fuzz_tests.cpp +++ b/tests/loader_fuzz_tests.cpp @@ -287,3 +287,6 @@ TEST(BadJsonInput, ClusterFuzzTestCase_5123849246867456) { // Causes a leak - settings_fuzzer: Direct-leak in loader_append_layer_property execute_setting_fuzzer("clusterfuzz-testcase-minimized-settings_fuzzer-5123849246867456"); } +TEST(BadJsonInput, ClusterFuzzTestCase_4626669072875520) { + execute_setting_fuzzer("clusterfuzz-testcase-minimized-settings_fuzzer-4626669072875520"); +}