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 564410 - Murrine should check for the widget value which comes from gtk_paint_shadow
Murrine should check for the widget value which comes from gtk_paint_shadow
Status: RESOLVED FIXED
Product: murrine
Classification: Other
Component: general
unspecified
Other Linux
: Normal normal
: ---
Assigned To: murrine-maint
Depends on:
Blocks:
 
 
Reported: 2008-12-13 19:56 UTC by Emmanuel Pacaud
Modified: 2009-03-10 12:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Emmanuel Pacaud 2008-12-13 19:56:32 UTC
A NULL value for the widget parameter of gtk_paint_shadow is perfetcly valid, but Murrine seems to use it for a call to gtk_widget_get_screen, without checking for NULL before.

The result is a lot of warnings emitted from applications that use gtk_paint_shadow with widget == NULL (gnumeric 1.8.x is an example). 

Here's a backtrace of the first warning of gnumeric using --g-fatal-warnings:

Program received signal SIGABRT, Aborted.

Thread 3062470400 (LWP 25780)

  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/tls/i686/cmov/libc.so.6
  • #2 abort
    from /lib/tls/i686/cmov/libc.so.6
  • #3 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #4 g_log
    from /usr/lib/libglib-2.0.so.0
  • #5 g_return_if_fail_warning
    from /usr/lib/libglib-2.0.so.0
  • #6 gtk_widget_get_screen
    from /usr/lib/libgtk-x11-2.0.so.0
  • #7 ??
    from /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
  • #8 ??
    from /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
  • #9 ??
    from /usr/lib/gtk-2.0/2.10.0/engines/libmurrine.so
  • #10 gtk_paint_shadow
    from /usr/lib/libgtk-x11-2.0.so.0
  • #11 ??
    from /usr/lib/libspreadsheet-1.8.3.so
  • #12 ??
    from /usr/lib/libspreadsheet-1.8.3.so
  • #13 ??
    from /usr/lib/libgoffice-0.6.so.6
  • #14 ??
    from /usr/lib/libgoffice-0.6.so.6
  • #15 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #16 ??
    from /usr/lib/libgobject-2.0.so.0
  • #17 g_closure_invoke
    from /usr/lib/libgobject-2.0.so.0
  • #18 ??
    from /usr/lib/libgobject-2.0.so.0
  • #19 g_signal_emit_valist
    from /usr/lib/libgobject-2.0.so.0
  • #20 g_signal_emit
    from /usr/lib/libgobject-2.0.so.0
  • #21 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #22 gtk_main_do_event
    from /usr/lib/libgtk-x11-2.0.so.0
  • #23 ??
    from /usr/lib/libgdk-x11-2.0.so.0
  • #24 gdk_window_process_all_updates
    from /usr/lib/libgdk-x11-2.0.so.0
  • #25 ??
    from /usr/lib/libgtk-x11-2.0.so.0
  • #26 ??
    from /usr/lib/libgdk-x11-2.0.so.0
  • #27 ??
    from /usr/lib/libglib-2.0.so.0
  • #28 g_main_context_dispatch
    from /usr/lib/libglib-2.0.so.0
  • #29 ??
    from /usr/lib/libglib-2.0.so.0
  • #30 g_main_loop_run
    from /usr/lib/libglib-2.0.so.0
  • #31 bonobo_main
    from /usr/lib/libbonobo-2.so.0
  • #32 main

Comment 1 Andrea Cimitan 2008-12-13 20:11:08 UTC
Are you using an updated version of murrine? I guess I've fixed this bug...

95	static
96	boolean murrine_widget_is_rgba (GtkWidget *widget)
97	{
98		boolean use_rgba = FALSE;
99		GdkScreen *screen;
100	
101		if (widget)
102			screen = gtk_widget_get_screen (widget);

[...]
Comment 2 Emmanuel Pacaud 2008-12-13 20:41:17 UTC
Oh, I've forgotten the murrine version.
I'm using gtk2-engines-murrine 0.60.1 from Ubuntu Intrepid.
Comment 3 Andrea Cimitan 2009-03-10 12:02:12 UTC
Thagtk-enginest was already fixed, closing :)