### 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
queues[0].queueCount = 1;
		queues[0].pQueuePriorities = queue_priorities;
		queues[0].flags = 0;
		uint32_t enabled_extension_count = 0;
		const char *enabled_extension_names[MAX_EXTENSIONS];
		ERR_FAIL_COND_V(enabled_device_extension_names.size() > MAX_EXTENSIONS, RID());
		for (const CharString &extension_name : enabled_device_extension_names) {
			enabled_extension_names[enabled_extension_count++] = extension_name.ptr();
		}
		VkDeviceCreateInfo sdevice = {
			VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO,
			 nullptr,
			 0,
			 1,
			 queues,
			 0,
			 nullptr,
			 enabled_extension_count,
			 (const char *const *)enabled_extension_names,
			 &physical_device_features, 
		};
		err = vkCreateDevice(gpu, &sdevice, nullptr, &ld.device);
		ERR_FAIL_COND_V(err, RID());
	}
	{ 
		vkGetDeviceQueue(ld.device, graphics_queue_family_index, 0, &ld.queue);
	}
	return local_device_owner.make_rid(ld);
}
VkDevice VulkanContext::local_device_get_vk_device(RID p_local_device) {