Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crash inside GradientTexture1D._update when running project #69861

Closed
qarmin opened this issue Dec 10, 2022 · 3 comments · Fixed by #91630
Closed

Crash inside GradientTexture1D._update when running project #69861

qarmin opened this issue Dec 10, 2022 · 3 comments · Fixed by #91630
Assignees
Milestone

Comments

@qarmin
Copy link
Contributor

qarmin commented Dec 10, 2022

Godot version

4.0.beta.custom_build. ae86d90

System information

Ubuntu 22.10 - Radeon RX 570, Gnome shell 42 X11

Issue description

When importing liblast - https://codeberg.org/Liblast/Liblast/ I got buffer overflow

==30230==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6190002e0d90 at pc 0x000018366042 bp 0x7ffdbda1a220 sp 0x7ffdbda1a210
WRITE of size 1 at 0x6190002e0d90 thread T0
    #0 0x18366041 in GradientTexture1D::_update() scene/resources/texture.cpp:2215
    #1 0x41861cd in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) core/variant/binder_common.h:262
    #2 0x417fbc9 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:409
    #3 0x416cd90 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:320
    #4 0x1ec76504 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:733
    #5 0x1dff0f85 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const core/variant/callable.cpp:62
    #6 0x1ec4f5f9 in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) core/object/message_queue.cpp:229
    #7 0x1ec506ec in MessageQueue::flush() core/object/message_queue.cpp:275
    #8 0x1399d02f in SceneTree::process(double) scene/main/scene_tree.cpp:469
    #9 0x2940b3a in Main::iteration() main/main.cpp:3192
    #10 0x271db89 in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:878
    #11 0x26fab44 in main platform/linuxbsd/godot_linuxbsd.cpp:73
    #12 0x7f5a5a02350f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #13 0x7f5a5a0235c8 in __libc_start_main_impl ../csu/libc-start.c:381
    #14 0x26fa4f4 in _start (/usr/bin/godot4s+0x26fa4f4)

0x6190002e0d90 is located 0 bytes to the right of 1040-byte region [0x6190002e0980,0x6190002e0d90)
allocated by thread T0 here:
    #0 0x7f5a5acb4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x1d3e237d in Memory::alloc_static(unsigned long, bool) core/os/memory.cpp:75
    #2 0x403a642 in Error CowData<unsigned char>::resize<false>(int) core/templates/cowdata.h:288
    #3 0x3f293a9 in Vector<unsigned char>::resize(int) core/templates/vector.h:91
    #4 0x18365aac in GradientTexture1D::_update() scene/resources/texture.cpp:2206
    #5 0x41861cd in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) core/variant/binder_common.h:262
    #6 0x417fbc9 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:409
    #7 0x416cd90 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:320
    #8 0x1ec76504 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:733
    #9 0x1dff0f85 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const core/variant/callable.cpp:62
    #10 0x1ec4f5f9 in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) core/object/message_queue.cpp:229
    #11 0x1ec506ec in MessageQueue::flush() core/object/message_queue.cpp:275
    #12 0x1399d02f in SceneTree::process(double) scene/main/scene_tree.cpp:469
    #13 0x2940b3a in Main::iteration() main/main.cpp:3192
    #14 0x271db89 in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:878
    #15 0x26fab44 in main platform/linuxbsd/godot_linuxbsd.cpp:73
    #16 0x7f5a5a02350f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

but when looking at code, I cannot find exact cause of this behavior

// Low dynamic range. "Overbright" colors will be clamped.
Vector<uint8_t> data;
data.resize(width * 4);
{
uint8_t *wd8 = data.ptrw();
Gradient &g = **gradient;
for (int i = 0; i < width; i++) {
float ofs = float(i) / (width - 1);
Color color = g.get_color_at_offset(ofs);
wd8[i * 4 + 0] = uint8_t(CLAMP(color.r * 255.0, 0, 255));
wd8[i * 4 + 1] = uint8_t(CLAMP(color.g * 255.0, 0, 255));
wd8[i * 4 + 2] = uint8_t(CLAMP(color.b * 255.0, 0, 255));
wd8[i * 4 + 3] = uint8_t(CLAMP(color.a * 255.0, 0, 255));
}
}

Steps to reproduce

Import liblast and run it with headless mode - this is not really reproducible

Minimal reproduction project

https://codeberg.org/Liblast/Liblast

@qarmin qarmin changed the title Crash inside GradientTexture1D._update when loading Crash inside GradientTexture1D._update when running project Dec 10, 2022
@qarmin
Copy link
Contributor Author

qarmin commented Dec 10, 2022

Similar crash related to NoiseTexture2D

==37996==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603001676c34 at pc 0x000008449ea7 bp 0x7fff7f38bc90 sp 0x7fff7f38bc80
READ of size 1 at 0x603001676c34 thread T0
    #0 0x8449ea6 in Ref<Image> Noise::_generate_seamless_image<unsigned char>(Ref<Image>, int, int, bool, float) const modules/noise/noise.h:143
    #1 0x844622f in Noise::get_seamless_image(int, int, bool, bool, float) const modules/noise/noise.cpp:44
    #2 0x8473c44 in NoiseTexture2D::_generate_texture() modules/noise/noise_texture_2d.cpp:158
    #3 0x84761a5 in NoiseTexture2D::_update_texture() modules/noise/noise_texture_2d.cpp:207
    #4 0x41861cd in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) core/variant/binder_common.h:262
    #5 0x417fbc9 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:409
    #6 0x416cd90 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:320
    #7 0x1ec76504 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:733
    #8 0x1dff0f85 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const core/variant/callable.cpp:62
    #9 0x1ec4f5f9 in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) core/object/message_queue.cpp:229
    #10 0x1ec506ec in MessageQueue::flush() core/object/message_queue.cpp:275
    #11 0x1399cada in SceneTree::process(double) scene/main/scene_tree.cpp:461
    #12 0x2940b3a in Main::iteration() main/main.cpp:3192
    #13 0x271db89 in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:878
    #14 0x26fab44 in main platform/linuxbsd/godot_linuxbsd.cpp:73
    #15 0x7f924ea2350f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
    #16 0x7f924ea235c8 in __libc_start_main_impl ../csu/libc-start.c:381
    #17 0x26fa4f4 in _start (/usr/bin/godot4s+0x26fa4f4)

0x603001676c34 is located 0 bytes to the right of 20-byte region [0x603001676c20,0x603001676c34)
allocated by thread T0 here:
    #0 0x7f924f6b4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
    #1 0x1d3e237d in Memory::alloc_static(unsigned long, bool) core/os/memory.cpp:75
    #2 0x403a642 in Error CowData<unsigned char>::resize<false>(int) core/templates/cowdata.h:288
    #3 0x3f293a9 in Vector<unsigned char>::resize(int) core/templates/vector.h:91
    #4 0x8446677 in Noise::get_image(int, int, bool, bool) const modules/noise/noise.cpp:63
    #5 0x844606a in Noise::get_seamless_image(int, int, bool, bool, float) const modules/noise/noise.cpp:41
    #6 0x8473c44 in NoiseTexture2D::_generate_texture() modules/noise/noise_texture_2d.cpp:158
    #7 0x84761a5 in NoiseTexture2D::_update_texture() modules/noise/noise_texture_2d.cpp:207
    #8 0x41861cd in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) core/variant/binder_common.h:262
    #9 0x417fbc9 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) core/variant/binder_common.h:409
    #10 0x416cd90 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const core/object/method_bind.h:320
    #11 0x1ec76504 in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) core/object/object.cpp:733
    #12 0x1dff0f85 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const core/variant/callable.cpp:62
    #13 0x1ec4f5f9 in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) core/object/message_queue.cpp:229
    #14 0x1ec506ec in MessageQueue::flush() core/object/message_queue.cpp:275
    #15 0x1399cada in SceneTree::process(double) scene/main/scene_tree.cpp:461
    #16 0x2940b3a in Main::iteration() main/main.cpp:3192
    #17 0x271db89 in OS_LinuxBSD::run() platform/linuxbsd/os_linuxbsd.cpp:878
    #18 0x26fab44 in main platform/linuxbsd/godot_linuxbsd.cpp:73
    #19 0x7f924ea2350f in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

SUMMARY: AddressSanitizer: heap-buffer-overflow modules/noise/noise.h:143 in Ref<Image> Noise::_generate_seamless_image<unsigned char>(Ref<Image>, int, int, bool, float) const

@qarmin
Copy link
Contributor Author

qarmin commented Dec 10, 2022

This maybe is related to this memory problem

==126174==WARNING: MemorySanitizer: use-of-uninitialized-value
    #0 0x8e61400 in Gradient::get_color_at_offset(float) /mnt/Miecz/godot/./scene/resources/gradient.h:118:15
    #1 0x8e53664 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:184:35
    #2 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #3 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #4 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #5 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #6 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #7 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #8 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #9 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #10 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #11 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #12 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #13 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #14 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #15 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16
    #16 0x7f492aa235c8 in __libc_start_main csu/../csu/libc-start.c:381:3
    #17 0x2371ae4 in _start (/mnt/Miecz/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm.san+0x2371ae4) (BuildId: 0a873c46fd3de030caf05e86a6168b22cb6f8319)

  Uninitialized value was stored to memory at
    #0 0x8e53458 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:183:33
    #1 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #2 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #3 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #4 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #5 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #6 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #7 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #8 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #9 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #10 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #11 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #12 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #13 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #14 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x2b3a042c in Image::get_pixel(int, int) const /mnt/Miecz/godot/core/io/image.cpp:3226:9
    #1 0x8e533b9 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:183:33
    #2 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #3 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #4 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #5 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #6 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #7 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #8 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #9 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #10 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #11 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #12 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #13 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #14 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #15 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x25a9476 in Color::Color(float, float, float, float) /mnt/Miecz/godot/./core/math/color.h:231:5
    #1 0x2b523ed2 in Image::_get_color_at_ofs(unsigned char const*, unsigned int) const /mnt/Miecz/godot/core/io/image.cpp:3027:11
    #2 0x2b3a03a6 in Image::get_pixel(int, int) const /mnt/Miecz/godot/core/io/image.cpp:3226:9
    #3 0x8e533b9 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:183:33
    #4 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #5 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #6 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #7 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #8 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #9 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #10 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #11 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #12 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #13 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #14 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #15 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #16 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #17 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x25a9138 in Color::Color(float, float, float, float) /mnt/Miecz/godot/./core/math/color.h:230
    #1 0x2b523ed2 in Image::_get_color_at_ofs(unsigned char const*, unsigned int) const /mnt/Miecz/godot/core/io/image.cpp:3027:11
    #2 0x2b3a03a6 in Image::get_pixel(int, int) const /mnt/Miecz/godot/core/io/image.cpp:3226:9
    #3 0x8e533b9 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:183:33
    #4 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #5 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #6 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #7 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #8 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #9 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #10 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #11 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #12 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #13 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #14 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #15 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #16 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #17 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x2b523e3c in Image::_get_color_at_ofs(unsigned char const*, unsigned int) const /mnt/Miecz/godot/core/io/image.cpp:3026:10
    #1 0x2b3a03a6 in Image::get_pixel(int, int) const /mnt/Miecz/godot/core/io/image.cpp:3226:9
    #2 0x8e533b9 in NoiseTexture2D::_modulate_with_gradient(Ref<Image>, Ref<Gradient>) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:183:33
    #3 0x8e4bf50 in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:163:15
    #4 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #5 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #6 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #7 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #8 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #9 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #10 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #11 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #12 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #13 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #14 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #15 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #16 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was stored to memory at
    #0 0x8df4c63 in Ref<Image> Noise::_generate_seamless_image<unsigned char>(Ref<Image>, int, int, bool, float) const /mnt/Miecz/godot/modules/noise/noise.h:147:14
    #1 0x8dec6d8 in Noise::get_seamless_image(int, int, bool, bool, float) const /mnt/Miecz/godot/modules/noise/noise.cpp:44:10
    #2 0x8e4b7ec in NoiseTexture2D::_generate_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:158:26
    #3 0x8e4acf8 in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:207:26
    #4 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #5 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #6 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #7 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #8 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #9 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #10 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #11 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #12 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #13 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #14 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #15 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

  Uninitialized value was created by a heap deallocation
    #0 0x239f96c in __interceptor_free (/mnt/Miecz/godot/bin/godot.linuxbsd.editor.dev.x86_64.llvm.san+0x239f96c) (BuildId: 0a873c46fd3de030caf05e86a6168b22cb6f8319)
    #1 0x2aa7ed76 in Memory::free_static(void*, bool) /mnt/Miecz/godot/core/os/memory.cpp:168:3
    #2 0x26e0a86f in void memdelete<RendererDummy::TextureStorage::DummyTexture>(RendererDummy::TextureStorage::DummyTexture*) /mnt/Miecz/godot/./core/os/memory.h:112:2
    #3 0x26df7e1f in RendererDummy::TextureStorage::texture_free(RID) /mnt/Miecz/godot/servers/rendering/dummy/storage/texture_storage.h:85:3
    #4 0x26dfabab in RendererDummy::TextureStorage::texture_replace(RID, RID) /mnt/Miecz/godot/servers/rendering/dummy/storage/texture_storage.h:114:75
    #5 0x2665e147 in RenderingServerDefault::texture_replace(RID, RID) /mnt/Miecz/godot/servers/rendering/rendering_server_default.h:198:2
    #6 0x8e51cfb in NoiseTexture2D::_set_texture_image(Ref<Image> const&) /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:116:25
    #7 0x8e4ad2d in NoiseTexture2D::_update_texture() /mnt/Miecz/godot/modules/noise/noise_texture_2d.cpp:208:3
    #8 0x36fdb72 in void call_with_variant_args_helper<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, Callable::CallError&, IndexSequence<>) /mnt/Miecz/godot/./core/variant/binder_common.h:262:2
    #9 0x36fd469 in void call_with_variant_args_dv<__UnexistingClass>(__UnexistingClass*, void (__UnexistingClass::*)(), Variant const**, int, Callable::CallError&, Vector<Variant> const&) /mnt/Miecz/godot/./core/variant/binder_common.h:409:2
    #10 0x36fb7e1 in MethodBindT<>::call(Object*, Variant const**, int, Callable::CallError&) const /mnt/Miecz/godot/./core/object/method_bind.h:320:3
    #11 0x2df514dc in Object::callp(StringName const&, Variant const**, int, Callable::CallError&) /mnt/Miecz/godot/core/object/object.cpp:733:17
    #12 0x2c04f001 in Callable::callp(Variant const**, int, Variant&, Callable::CallError&) const /mnt/Miecz/godot/core/variant/callable.cpp:62:25
    #13 0x2df1b4ae in MessageQueue::_call_function(Callable const&, Variant const*, int, bool) /mnt/Miecz/godot/core/object/message_queue.cpp:229:13
    #14 0x2df1cfec in MessageQueue::flush() /mnt/Miecz/godot/core/object/message_queue.cpp:275:6
    #15 0x1bb90e6d in SceneTree::process(double) /mnt/Miecz/godot/scene/main/scene_tree.cpp:469:33
    #16 0x27aeb72 in Main::iteration() /mnt/Miecz/godot/main/main.cpp:3192:44
    #17 0x243069f in OS_LinuxBSD::run() /mnt/Miecz/godot/platform/linuxbsd/os_linuxbsd.cpp:878:7
    #18 0x23fb1bd in main /mnt/Miecz/godot/platform/linuxbsd/godot_linuxbsd.cpp:73:6
    #19 0x7f492aa2350f in __libc_start_call_main csu/../sysdeps/nptl/libc_start_call_main.h:58:16

@akien-mga
Copy link
Member

Fixed by #91630.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment