After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758327 - gnome-disks segfault in gdkwayland get_popup_parent - dereference null window pointer
gnome-disks segfault in gdkwayland get_popup_parent - dereference null window...
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Wayland
3.18.x
Other Linux
: Normal major
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2015-11-19 11:18 UTC by Alban Browaeys
Modified: 2015-11-19 19:42 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Alban Browaeys 2015-11-19 11:18:15 UTC
https://git.gnome.org/browse/gtk+/commit/?id=e25ea62f22ce0bbb7175f93c07de5cab773778a7
introduced a crash . That is when impl->transient_for is NULL , get_popup_parent do the "do" before the window is null test. That is window->impl is dereferenced while winodw is NULL.

It might well be that a plain while would do fix the issue. I report now , but no fix was tested on my side yet. I am using debian gtk+ 3.18.5-1


the  impl->hint is:
gtk.gdk.WINDOW_TYPE_HINT_DROPDOWN_MENU


(gdb) up
  • #1 gdk_wayland_window_map
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/wayland/gdkwindow-wayland.c line 1367
  • #0 gdk_wayland_window_show
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/wayland/gdkwindow-wayland.c line 1279
  • #1 gdk_wayland_window_show
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/wayland/gdkwindow-wayland.c line 1367
  • #2 gdk_wayland_window_show
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/wayland/gdkwindow-wayland.c line 1417
  • #3 gdk_window_show_internal
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/gdkwindow.c line 5013
  • #4 gtk_window_map
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwindow.c line 6096
  • #5 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #6 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #7 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #8 gtk_widget_map
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwidget.c line 4920
  • #9 gtk_window_show
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwindow.c line 5952
  • #13 <emit signal ??? on instance 0x8ccbf0 [GtkWindow]>
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #14 gtk_widget_show
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwidget.c line 4726
  • #15 gtk_menu_popup_for_device
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkmenu.c line 1750
  • #16 0x0000000000421343 in
  • #17 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #18 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #19 g_signal_emit_by_name
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3479
  • #20 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #21 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #22 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #23 gtk_button_do_release
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkbutton.c line 1899
  • #24 gtk_real_button_released
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkbutton.c line 2017
  • #25 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #26 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #27 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #28 multipress_released_cb
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkbutton.c line 613
  • #29 ffi_call_unix64
  • #30 ffi_call
  • #31 g_cclosure_marshal_generic_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 1600
  • #32 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #33 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #34 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #35 gtk_gesture_multi_press_end
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkgesturemultipress.c line 273
  • #36 g_cclosure_marshal_VOID__BOXEDv
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gmarshal.c line 1950
  • #37 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #38 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #39 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #40 _gtk_gesture_check_recognized
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkgesture.c line 345
  • #41 _gtk_gesture_check_recognized
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkgesture.c line 386
  • #42 gtk_gesture_handle_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkgesture.c line 777
  • #43 gtk_gesture_single_handle_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkgesturesingle.c line 221
  • #44 gtk_event_controller_handle_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkeventcontroller.c line 230
  • #45 _gtk_widget_run_controllers
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwidget.c line 7321
  • #46 _gtk_marshal_BOOLEAN__BOXEDv
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkmarshalers.c line 131
  • #47 _g_closure_invoke_va
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gclosure.c line 864
  • #48 g_signal_emit_valist
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3292
  • #49 g_signal_emit
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gobject/gsignal.c line 3439
  • #50 gtk_widget_event_internal
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkwidget.c line 7692
  • #51 propagate_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkmain.c line 2527
  • #52 propagate_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkmain.c line 2629
  • #53 gtk_main_do_event
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gtk/gtkmain.c line 1850
  • #54 gdk_event_source_dispatch
    at /build/gtk+3.0-bNySRH/gtk+3.0-3.18.5/./gdk/wayland/gdkeventsource.c line 90
  • #55 g_main_context_dispatch
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./glib/gmain.c line 3154
  • #56 g_main_context_dispatch
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./glib/gmain.c line 3769
  • #57 g_main_context_iterate
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./glib/gmain.c line 3840
  • #58 g_main_context_iteration
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./glib/gmain.c line 3901
  • #59 g_application_run
    at /build/glib2.0-Penpf1/glib2.0-2.47.1/./gio/gapplication.c line 2311
  • #60 main