### Godot version

master CI builds

### System information

Linux / Editor with doubles and GCC sanitizers

### Issue description

The `Linux / Editor with doubles and GCC sanitizers` build can fail with a `attempting free on address which was not malloc()-ed` crash in the `Open and close editor (Vulkan)` step.

https://github.com/godotengine/godot/actions/runs/5366302204/jobs/9735786296#step:15:138
https://github.com/godotengine/godot/actions/runs/5389199469/jobs/9783070708?pr=78740#step:15:138

The failure doesn't seem related to either PR (in fact one of them is just a docs change). I have only seen this issue these two times, still probably worth looking into.

### Steps to reproduce

Open and close https://github.com/godotengine/regression-test-project/archive/4.0.zip using the Vulkan renderer.

### Minimal reproduction project

https://github.com/godotengine/regression-test-project/archive/4.0.zip
uint32_t vendor_idx = 0;
			while (vendor_names[vendor_idx].name != nullptr) {
				if (props.vendorID == vendor_names[vendor_idx].id) {
					vendor = vendor_names[vendor_idx].name;
					break;
				}
				vendor_idx++;
			}
			free(device_queue_props);
			print_verbose("  #" + itos(i) + ": " + vendor + " " + name + " - " + (present_supported ? "Supported" : "Unsupported") + ", " + dev_type);
			if (present_supported) { 
				switch (props.deviceType) {
					case VkPhysicalDeviceType::VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU: {
						if (type_selected < 4) {
							type_selected = 4;
							device_index = i;
						}
					} break;
					case VkPhysicalDeviceType::VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU: {
						if (type_selected < 3) {
							type_selected = 3;
							device_index = i;
						}
					} break;
					case VkPhysicalDeviceType::VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU: {
						if (type_selected < 2) {
							type_selected = 2;
							device_index = i;
						}
					} break;