### Godot version

4.2.dev.custom_build. a278c1b98

### System information

Ubuntu 22.04 CI

### Issue description

When executing
```
extends Node
func _process(delta):

	var temp_variable841 = MultiMesh.new()
	temp_variable841.get_instance_transform(-75)
	temp_variable841.set_use_colors(true)
	temp_variable841.set_instance_count(7)
	temp_variable841.set_buffer(PackedFloat32Array([28.8746109008789, -94.6003112792969, -34.3169136047363, -18.6109485626221, 32.8587303161621, 24.6415863037109, 38.0907669067383, 11.6895437240601, -46.8452377319336, 42.4215087890625, 40.911376953125, -28.4188385009766, 25.0959873199463, -36.9827461242676, -78.3260803222656, -22.1357345581055, 57.8499069213867, 16.416145324707, 83.596076965332, 98.0960464477539, -15.5701999664307, -2.53928303718567, 4.75499629974365, 28.3132438659668, 86.8913269042969]))
	temp_variable841.is_connected(StringName("2860254513"), Callable(BoxMesh.new(),""))
	temp_variable841._get_transform_2d_array()
```
Godot crashes:
```
ERROR: Index p_index = -75 is out of bounds (multimesh->instances = 0).
   at: multimesh_instance_get_transform (drivers/gles3/storage/mesh_storage.cpp:1583)
ERROR: Condition "p_buffer.size() != (multimesh->instances * (int)old_stride)" is true.
   at: multimesh_set_buffer (drivers/gles3/storage/mesh_storage.cpp:1698)
ERROR: Method argument to Callable constructor must be a non-empty string
   at: Callable (core/variant/callable.cpp:341)
ERROR: Cannot determine if connected to '2860254513': the provided callable is null.
   at: is_connected (core/object/object.cpp:1319)
=================================================================
==15842==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x60d000c921d0 at pc 0x560b90f7dbaa bp 0x7ffe677a8800 sp 0x7ffe677a87f0
READ of size 4 at 0x60d000c921d0 thread T0
    #0 0x560b90f7dba9 in GLES3::MeshStorage::multimesh_instance_get_transform_2d(RID, int) const drivers/gles3/storage/mesh_storage.cpp:1625
    #1 0x560b9e8d6527 in RenderingServerDefault::multimesh_instance_get_transform_2d(RID, int) const servers/rendering/rendering_server_default.h:339
    #2 0x560b9c12bdba in MultiMesh::get_instance_transform_2d(int) const scene/resources/multimesh.cpp:253
    #3 0x560b9c1267f0 in MultiMesh::_get_transform_2d_array() const scene/resources/multimesh.cpp:127
    #4 0x560b89b4c552 in void call_with_variant_args_retc_helper<__UnexistingClass, Vector<Vector2>>(__UnexistingClass*, Vector<Vector2> (__UnexistingClass::*)() const, Variant const**, Variant&, Callable::CallError&, IndexSequence<>) core/variant/binder_common.h:806
    #5 0x560b89b3536a in void call_with_variant_args_retc_dv<__UnexistingClass, Vector<Vector2>>(__UnexistingClass*, Vector<Vector2> (__UnexistingClass::*)() const, Variant const**, int, Variant&, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:567
    #6 0x560b89b21e11 in MethodBindTRC<Vector<Vector2>>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:579
    #7 0x560ba31dc546 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:741
    #8 0x560ba25e3078 in Variant::callp(StringName const&, Variant const**, int, Variant&, Callable::CallError&) core/variant/variant_call.cpp:1174
    #9 0x560b8b3a1445 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_vm.cpp:1733
    #10 0x560b8aced77e in GDScriptInstance::callp(StringName const&, Variant const**, int, Callable::CallError&) modules/gdscript/gdscript.cpp:1892
    #11 0x560b97e5a61c in bool Node::_gdvirtual__process_call<false>(double) scene/main/node.h:318
    #12 0x560b97da31a8 in Node::_notification(int) scene/main/node.cpp:56
    #13 0x560b89a09f99 in Node::_notificationv(int, bool) scene/main/node.h:49
    #14 0x560ba31dd954 in Object::notification(int, bool) core/object/object.cpp:798
    #15 0x560b97f41346 in SceneTree::_process_group(SceneTree::ProcessGroup*, bool) scene/main/scene_tree.cpp:948
    #16 0x560b97f445ea in SceneTree::_process(bool) scene/main/scene_tree.cpp:1025
    #17 0x560b97f32a92 in SceneTree::process(double) scene/main/scene_tree.cpp:508
    #18 0x560b890cbd0f in Main::iteration() main/main.cpp:3501
    #19 0x560b88e029ad in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:933
    #20 0x560b88de0f17 in main platform/linuxbsd/godot_linuxbsd.cpp:74
    #21 0x7fbeb9e5cd8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f)
    #22 0x7fbeb9e5ce3f in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e3f)
    #23 0x560b88de08c4 in _start (/home/runner/work/Qarminer/Qarminer/godot.linuxbsd.editor.dev.x86_64.san+0x39dda8c4)

0x60d000c921d0 is located 16 bytes to the right of 144-byte region [0x60d000c92130,0x60d000c921c0)
allocated by thread T0 here:
    #0 0x7fbeba82b887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x560ba193a1db in Memory::alloc_static(unsigned long, bool) core/os/memory.cpp:75
    #2 0x560b89b0afad in CowData<float>::_copy_on_write() core/templates/cowdata.h:234
    #3 0x560b89af44c5 in CowData<float>::ptrw() core/templates/cowdata.h:122
    #4 0x560b89ae0a07 in Vector<float>::ptrw() core/templates/vector.h:85
    #5 0x560b90f81611 in GLES3::MeshStorage::multimesh_set_buffer(RID, Vector<float> const&) drivers/gles3/storage/mesh_storage.cpp:1694
    #6 0x560b9e8d793d in RenderingServerDefault::multimesh_set_buffer(RID, Vector<float> const&) servers/rendering/rendering_server_default.h:343
    #7 0x560b9c128ceb in MultiMesh::set_buffer(Vector<float> const&) scene/resources/multimesh.cpp:198
    #8 0x560b98c5157c in void call_with_variant_args_helper<__UnexistingClass, Vector<float> const&, 0ul>(__UnexistingClass*, void (__UnexistingClass::*)(Vector<float> const&), Variant const**, Callable::CallError&, IndexSequence<0ul>) core/variant/binder_common.h:303
    #9 0x560b98c469c6 in void call_with_variant_args_dv<__UnexistingClass, Vector<float> const&>(__UnexistingClass*, void (__UnexistingClass::*)(Vector<float> const&), Variant const**, int, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:450
    #10 0x560b98c3d18a in MethodBindT<Vector<float> const&>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:331
    #11 0x560ba31dc546 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:741
    #12 0x560ba25e3078 in Variant::callp(StringName const&, Variant const**, int, Variant&, Callable::CallError&) core/variant/variant_call.cpp:1174
    #13 0x560b8b3a1445 in GDScriptFunction::call(GDScriptInstance*, Variant const**, int, Callable::CallError&, GDScriptFunction::CallState*) modules/gdscript/gdscript_vm.cpp:1733
    #14 0x560b8aced77e in GDScriptInstance::callp(StringName const&, Variant const**, int, Callable::CallError&) modules/gdscript/gdscript.cpp:1892
    #15 0x560b97e5a61c in bool Node::_gdvirtual__process_call<false>(double) scene/main/node.h:318
    #16 0x560b97da31a8 in Node::_notification(int) scene/main/node.cpp:56
    #17 0x560b89a09f99 in Node::_notificationv(int, bool) scene/main/node.h:49
    #18 0x560ba31dd954 in Object::notification(int, bool) core/object/object.cpp:798
    #19 0x560b97f41346 in SceneTree::_process_group(SceneTree::ProcessGroup*, bool) scene/main/scene_tree.cpp:948
    #20 0x560b97f445ea in SceneTree::_process(bool) scene/main/scene_tree.cpp:1025
    #21 0x560b97f32a92 in SceneTree::process(double) scene/main/scene_tree.cpp:508
    #22 0x560b890cbd0f in Main::iteration() main/main.cpp:3501
    #23 0x560b88e029ad in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:933
    #24 0x560b88de0f17 in main platform/linuxbsd/godot_linuxbsd.cpp:74
    #25 0x7fbeb9e5cd8f  (/lib/x86_64-linux-gnu/libc.so.6+0x29d8f)

SUMMARY: AddressSanitizer: heap-buffer-overflow drivers/gles3/storage/mesh_storage.cpp:1625 in GLES3::MeshStorage::multimesh_instance_get_transform_2d(RID, int) const
```


This example was found by Godot fuzzer - [Qarminer](https://github.com/qarmin/Qarminer), so it is quite unlikelly that this code could be used in real project, but still this should be handled gracefully.

Memory leaks or asan backtraces are visibe when using Godot build with sanitizers support - https://github.com/qarmin/GodotBuilds/actions (linux -> linux-editor-sanitizers)


### Steps to reproduce

Above

### Minimal reproduction project

Above
Skeleton *skeleton = skeleton_owner.get_or_null(p_skeleton);
	ERR_FAIL_COND_V(!skeleton, Transform3D());
	ERR_FAIL_INDEX_V(p_bone, skeleton->size, Transform3D());
	ERR_FAIL_COND_V(skeleton->use_2d, Transform3D());
	const float *dataptr = skeleton->data.ptr() + p_bone * 12;
	Transform3D t;
	t.basis.rows[0][0] = dataptr[0];
	t.basis.rows[0][1] = dataptr[1];
	t.basis.rows[0][2] = dataptr[2];
	t.origin.x = dataptr[3];
	t.basis.rows[1][0] = dataptr[4];
	t.basis.rows[1][1] = dataptr[5];
	t.basis.rows[1][2] = dataptr[6];
	t.origin.y = dataptr[7];
	t.basis.rows[2][0] = dataptr[8];
	t.basis.rows[2][1] = dataptr[9];
	t.basis.rows[2][2] = dataptr[10];
	t.origin.z = dataptr[11];
	return t;
}
void MeshStorage::skeleton_bone_set_transform_2d(RID p_skeleton, int p_bone, const Transform2D &p_transform) {