### 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
if (err != OK) {
		return INVALID_ID;
	}
	draw_list_render_pass = render_pass;
	draw_list_vkframebuffer = vkframebuffer;
	_draw_list_allocate(Rect2i(viewport_offset, viewport_size), 0, 0);
#ifdef DEBUG_ENABLED
	draw_list_framebuffer_format = framebuffer->format_id;
#endif
	draw_list_current_subpass = 0;
	if (needs_clear_color || needs_clear_depth) {
		_draw_list_insert_clear_region(draw_list, framebuffer, viewport_offset, viewport_size, needs_clear_color, p_clear_color_values, needs_clear_depth, p_clear_depth, p_clear_stencil);
	}
	VkViewport viewport;
	viewport.x = viewport_offset.x;
	viewport.y = viewport_offset.y;
	viewport.width = viewport_size.width;
	viewport.height = viewport_size.height;
	viewport.minDepth = 0;
	viewport.maxDepth = 1.0;
	vkCmdSetViewport(command_buffer, 0, 1, &viewport);
	VkRect2D scissor;
	scissor.offset.x = viewport_offset.x;
	scissor.offset.y = viewport_offset.y;
	scissor.extent.width = viewport_size.width;
	scissor.extent.height = viewport_size.height;
	vkCmdSetScissor(command_buffer, 0, 1, &scissor);
	return int64_t(ID_TYPE_DRAW_LIST) << ID_BASE_SHIFT;
}
Error RenderingDeviceVulkan::draw_list_begin_split(RID p_framebuffer, uint32_t p_splits, DrawListID *r_split_ids, InitialAction p_initial_color_action, FinalAction p_final_color_action, InitialAction p_initial_depth_action, FinalAction p_final_depth_action, const Vector<Color> &p_clear_color_values, float p_clear_depth, uint32_t p_clear_stencil, const Rect2 &p_region, const Vector<RID> &p_storage_textures) {