diff --git a/loader/settings.c b/loader/settings.c index 0e5c8681a..d1a9afcc5 100644 --- a/loader/settings.c +++ b/loader/settings.c @@ -763,14 +763,14 @@ VkResult get_loader_settings(const struct loader_instance* inst, loader_settings cJSON_ArrayForEach(log_element, logs_to_use) { // bool is_valid = true; struct loader_string_list log_destinations = {0}; - res = loader_parse_json_array_of_strings(inst, log_element, "destinations", &log_destinations); - if (res != VK_SUCCESS) { + VkResult parse_dest_res = loader_parse_json_array_of_strings(inst, log_element, "destinations", &log_destinations); + if (parse_dest_res != VK_SUCCESS) { // is_valid = false; } free_string_list(inst, &log_destinations); struct loader_string_list log_filters = {0}; - res = loader_parse_json_array_of_strings(inst, log_element, "filters", &log_filters); - if (res != VK_SUCCESS) { + VkResult parse_filters_res = loader_parse_json_array_of_strings(inst, log_element, "filters", &log_filters); + if (parse_filters_res != VK_SUCCESS) { // is_valid = false; } free_string_list(inst, &log_filters); diff --git a/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-instance_enumerate_fuzzer-6470575830925312 b/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-instance_enumerate_fuzzer-6470575830925312 new file mode 100644 index 000000000..a38496a70 Binary files /dev/null and b/tests/framework/data/fuzz_test_minimized_test_cases/clusterfuzz-testcase-minimized-instance_enumerate_fuzzer-6470575830925312 differ diff --git a/tests/loader_fuzz_tests.cpp b/tests/loader_fuzz_tests.cpp index 13936d316..4298ecf33 100644 --- a/tests/loader_fuzz_tests.cpp +++ b/tests/loader_fuzz_tests.cpp @@ -40,7 +40,7 @@ void execute_instance_enumerate_fuzzer(std::filesystem::path const& filename) { env.write_file_from_source((std::filesystem::path(CLUSTERFUZZ_TESTCASE_DIRECTORY) / filename).string().c_str(), ManifestCategory::settings, ManifestLocation::settings_location, "vk_loader_settings.json"); - uint32_t pPropertyCount; + uint32_t pPropertyCount = 1; VkExtensionProperties pProperties = {0}; env.vulkan_functions.vkEnumerateInstanceExtensionProperties("test_auto", &pPropertyCount, &pProperties); @@ -135,7 +135,9 @@ TEST(BadJsonInput, ClusterFuzzTestCase_6583684169269248) { // Nullptr dereference in loader_copy_to_new_str execute_instance_enumerate_fuzzer("clusterfuzz-testcase-minimized-instance_enumerate_fuzzer-6583684169269248"); } - +TEST(BadJsonInput, ClusterFuzzTestCase_6470575830925312) { + execute_instance_enumerate_fuzzer("clusterfuzz-testcase-minimized-instance_enumerate_fuzzer-6470575830925312"); +} TEST(BadJsonInput, ClusterFuzzTestCase_5258042868105216) { // Doesn't crash with ASAN or UBSAN // Doesn't reproducibly crash - json_load_fuzzer: Abrt in loader_cJSON_Delete