gtk4-rs icon indicating copy to clipboard operation
gtk4-rs copied to clipboard

[BUG] `gtk4::IconView.list_mnemonic_labels` cause crash

Open qarmin opened this issue 3 years ago • 0 comments

System:    Host: rafalkom Kernel: 5.13.0-28-generic x86_64 bits: 64 compiler: gcc v: 11.2.0 Desktop: GNOME 40.5 
           tk: GTK 3.24.30 wm: gnome-shell dm: GDM3 Distro: Ubuntu 21.10 (Impish Indri) 
RUST_BACKTRACE=full RUSTFLAGS=-Zsanitizer=address RUSTDOCFLAGS=-Zsanitizer=address cargo run  -Zbuild-std --target x86_64-unknown-linux-gnu

Bug description

let thing = IconView::new(); // IconView
thing.add_mnemonic_label(&LinkButton::default());
thing.list_mnemonic_labels();

cause panic:

thread 'main' panicked at 'assertion failed: ::glib::types::instance_of::<Self>(ptr as *const _)', /home/rafal/.cargo/git/checkouts/gtk4-rs-e74ad56283dfeb5e/7af6795/gtk4/src/auto/widget.rs:39:1
stack backtrace:
   0:     0x5632255dd275 - std::backtrace_rs::backtrace::libunwind::trace::h5321f920fb5af321
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x5632255dd275 - std::backtrace_rs::backtrace::trace_unsynchronized::h4ccbe073baa0c622
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x5632254b446e - std::sys_common::backtrace::_print_fmt::h57325c315bf40253
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x5632254b3bd9 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha7b2b31f08b743eb
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x5632258a64d5 - core::fmt::write::hcf0258b070c144cf
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/fmt/mod.rs:1190:17
   5:     0x5632254a13e8 - std::io::Write::write_fmt::h30a02bfd0074f189
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/io/mod.rs:1657:15
   6:     0x5632254b3ad4 - std::sys_common::backtrace::_print::hb83f71b0dc1d1db2
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x5632254b363e - std::sys_common::backtrace::print::h17ffe3d0d0b26f72
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x56322566aea9 - std::panicking::default_hook::{{closure}}::h3a9ef0e59984b423
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:295:22
   9:     0x56322566a106 - std::panicking::default_hook::h6f4c708a6990fdc0
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:314:9
  10:     0x563225671171 - std::panicking::rust_panic_with_hook::h5aab37a186fbc190
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:698:17
  11:     0x563225670702 - std::panicking::begin_panic_handler::{{closure}}::h43136146ef3d6b47
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:586:13
  12:     0x5632254b658d - std::sys_common::backtrace::__rust_end_short_backtrace::hdf0b5d80443a9208
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:138:18
  13:     0x56322566ef7f - rust_begin_unwind
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:584:5
  14:     0x56322589f5d6 - core::panicking::panic_fmt::h69e5098291ec7324
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:143:14
  15:     0x56322589ec92 - core::panicking::panic::hdf8ce5d2c6692dbb
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/panicking.rs:48:5
  16:     0x563224c785d4 - <gtk4::auto::widget::Widget as glib::translate::FromGlibPtrNone<*mut gtk4_sys::GtkWidget>>::from_glib_none::hb72d1b2417d0ea7f
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/glib/src/object.rs:829:17
  17:     0x563224e127ce - glib::translate::from_glib_none::h070631e01d0bc0b0
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/glib/src/translate.rs:1426:5
  18:     0x563224c68122 - <T as glib::translate::FromGlibPtrArrayContainerAsVec<<T as glib::translate::GlibPtrDefault>::GlibType,*mut glib_sys::GList>>::from_glib_none_as_vec::h9801780b5d243b26
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/glib/src/translate.rs:2064:26
  19:     0x563224c68302 - <T as glib::translate::FromGlibPtrArrayContainerAsVec<<T as glib::translate::GlibPtrDefault>::GlibType,*mut glib_sys::GList>>::from_glib_container_as_vec::h9e7a3a2b8d888722
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/glib/src/translate.rs:2072:19
  20:     0x563224b5b3f7 - <alloc::vec::Vec<T> as glib::translate::FromGlibPtrContainer<P,PP>>::from_glib_container::h915e26731ff60815
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/glib/src/translate.rs:1900:9
  21:     0x56322340f6d8 - <O as gtk4::auto::widget::WidgetExt>::list_mnemonic_labels::h6dffb357276916e6
                               at /home/rafal/.cargo/git/checkouts/gtk4-rs-e74ad56283dfeb5e/7af6795/gtk4/src/auto/widget.rs:1512:13
  22:     0x563224008ea7 - crash_thing::ziemniak::fct_iconview_list_mnemonic_labels::h846c3afc6e9902ad
                               at /home/rafal/Projekty/Rust/gtk_rs_fuzzer/Project/src/ziemniak.rs:28478:5
  23:     0x563223ff8a1b - crash_thing::ziemniak::cls_iconview::h1964843bd15e908d
                               at /home/rafal/Projekty/Rust/gtk_rs_fuzzer/Project/src/ziemniak.rs:27968:13
  24:     0x5632239fc271 - crash_thing::ziemniak::run_tests::hc5d9b7a96fa30633
                               at /home/rafal/Projekty/Rust/gtk_rs_fuzzer/Project/src/ziemniak.rs:34:21
  25:     0x563223405c1a - crash_thing::main::{{closure}}::heddf3bc7149469b0
                               at /home/rafal/Projekty/Rust/gtk_rs_fuzzer/Project/src/main.rs:32:13
  26:     0x5632239dbdab - <O as gio::auto::application::ApplicationExt>::connect_activate::activate_trampoline::h90b15b06556242d7
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/gio/src/auto/application.rs:604:13
  27:     0x7fc653090c0f - g_closure_invoke
                               at ./debian/build/deb/../../../gobject/gclosure.c:810:7
  28:     0x7fc6530acea6 - signal_emit_unlocked_R
                               at ./debian/build/deb/../../../gobject/gsignal.c:3741:8
  29:     0x7fc6530ae884 - g_signal_emit_valist
                               at ./debian/build/deb/../../../gobject/gsignal.c:3497:5
  30:     0x7fc6530aead3 - g_signal_emit
                               at ./debian/build/deb/../../../gobject/gsignal.c:3553:3
  31:     0x7fc6531b39d8 - g_application_real_local_command_line
                               at ./debian/build/deb/../../../gio/gapplication.c:1140:11
  32:     0x7fc6531b3bb6 - g_application_run
                               at ./debian/build/deb/../../../gio/gapplication.c:2529:8
  33:     0x563223300219 - <O as gio::application::ApplicationExtManual>::run_with_args::ha786545da0368986
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/gio/src/application.rs:30:13
  34:     0x5632232ffc08 - <O as gio::application::ApplicationExtManual>::run::h5b20ecf8935e76a0
                               at /home/rafal/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/a4062ea/gio/src/application.rs:23:9
  35:     0x56322374a5a7 - crash_thing::main::h13402aa8f132edb3
                               at /home/rafal/Projekty/Rust/gtk_rs_fuzzer/Project/src/main.rs:36:5
  36:     0x5632239a393b - core::ops::function::FnOnce::call_once::h77c8f1b72664d894
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:227:5
  37:     0x563223825025 - std::sys_common::backtrace::__rust_begin_short_backtrace::hf4b7fbf34b0c7728
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys_common/backtrace.rs:122:18
  38:     0x56322375deb4 - std::rt::lang_start::{{closure}}::hb51b0490af579bec
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:145:18
  39:     0x56322565f7be - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h90a66a809ba225b5
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:259:13
  40:     0x56322566df1f - std::panicking::try::do_call::h9460baa835d9c2b0
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:492:40
  41:     0x5632256770fb - __rust_try
  42:     0x56322566d1e3 - std::panicking::try::he12851a8fc891272
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:456:19
  43:     0x563225415caa - std::panic::catch_unwind::h89ea6f3d55ff9167
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:137:14
  44:     0x5632254b309c - std::rt::lang_start_internal::{{closure}}::h9f0c6bfe1b9f40cb
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:128:48
  45:     0x56322566dd4e - std::panicking::try::do_call::h6ecf2678a836bdab
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:492:40
  46:     0x5632256770fb - __rust_try
  47:     0x56322566cb8c - std::panicking::try::h92596a7e526dacd8
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panicking.rs:456:19
  48:     0x563225415f9a - std::panic::catch_unwind::hd96b4173367661d2
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/panic.rs:137:14
  49:     0x5632254b29ea - std::rt::lang_start_internal::he0ee6212640736c7
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:128:20
  50:     0x56322375de16 - std::rt::lang_start::h803dd3e3b6483ad8
                               at /home/rafal/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:144:17
  51:     0x56322374e27c - main
  52:     0x7fc652c4cfd0 - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  53:     0x7fc652c4d07d - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:409:3
  54:     0x563222f711f5 - _start
  55:                0x0 - <unknown>


Issue found by fuzzer - https://github.com/qarmin/gtk-rs-fuzzer

qarmin avatar Feb 14 '22 20:02 qarmin