Bug 3919 - segfault in libqtengine.so drawing notebook
Summary: segfault in libqtengine.so drawing notebook
Status: RESOLVED FIXED
Alias: None
Product: GTK-Qt Engine
Classification: Unclassified
Component: GTK-Qt (show other bugs)
Version: unspecified
Hardware: x86 (IA32) Linux (All)
: high normal
Assignee: David Sansome
QA Contact:
URL:
Whiteboard:
Keywords: have-backtrace
Depends on:
Blocks:
 
Reported: 2005-07-30 20:55 UTC by Miguel Angel
Modified: 2006-02-02 19:02 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Patch to check for null pointer in drawTabNG and avoid segfault (587 bytes, patch)
2005-10-27 07:41 UTC, Miguel Angel
Details | Splinter Review

Description Miguel Angel 2005-07-30 20:55:55 UTC
In drawTabNG you try to get the notebook's tab gtk_label position to correct   
it, but sometimes may be no gtk_label in the tab, getting a null pointer   
instead.  
I found it using gazpacho (http://gazpacho.sicem.biz/downloads), a gui   
designer like glade written in python. I tested it with gtk 2.4 and 2.6   
versions.  
  
To reproduce it download gazpacho, then do the following  
run gazpacho  
create a new window (toplevel widget)  
add a notebook (containers & ornaments)  
it segfaults.  
 
Backtrace: 
Reading symbols from python...done. 
Using host libthread_db library "/lib/tls/libthread_db.so.1". 
(gdb) run bin/gazpacho 
[Thread debugging using libthread_db enabled] 
[New Thread 1077078240 (LWP 19462)] 
GTK Version: (2, 6, 8) 
PyGTK Version: (2, 6, 2) 
Running Gazpacho from source tree 
Adding /usr/src/packages/BUILD/Gazpacho-0.5.3 to sys.path 
Retrieving path.py file ...  
Detaching after fork from child process 19465. 
Detaching after fork from child process 19466. 
 
Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 1077078240 (LWP 19462)] 
0x4116e0cd in drawTabNG ()  
from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so 
(gdb) bt 
#0  0x4116e0cd in drawTabNG ()  
from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so 
#1  0x41169122 in draw_box ()  
from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so 
#2  0x40820b1c in gtk_paint_box () from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#3  0x41167f3f in draw_extension ()  
from /opt/gnome/lib/gtk-2.0/2.4.0/engines/libqtengine.so 
#4  0x408204e8 in gtk_paint_extension ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#5  0x407e9085 in gtk_notebook_draw_tab ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#6  0x407e964e in gtk_notebook_expose ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#7  0x407d031e in _gtk_marshal_BOOLEAN__BOXED ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#8  0x4042f457 in g_type_class_meta_marshal ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#9  0x4042fadb in g_closure_invoke () from /opt/gnome/lib/libgobject-2.0.so.0 
#10 0x40440889 in signal_emit_unlocked_R ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#11 0x4044173e in g_signal_emit_valist ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#12 0x40441d92 in g_signal_emit () from /opt/gnome/lib/libgobject-2.0.so.0 
#13 0x408b8df4 in gtk_widget_event_internal ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#14 0x4073f779 in gtk_container_propagate_expose ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#15 0x4073f7ad in gtk_container_expose_child ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#16 0x4070015c in gtk_bin_forall () from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#17 0x4074021d in gtk_container_forall ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#18 0x40742275 in gtk_container_expose ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#19 0x408cdc5d in gtk_window_expose () from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#20 0x407d031e in _gtk_marshal_BOOLEAN__BOXED ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#21 0x4042f457 in g_type_class_meta_marshal ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#22 0x4042fadb in g_closure_invoke () from /opt/gnome/lib/libgobject-2.0.so.0 
#23 0x40440889 in signal_emit_unlocked_R ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#24 0x4044173e in g_signal_emit_valist ()  
from /opt/gnome/lib/libgobject-2.0.so.0 
#25 0x40441d92 in g_signal_emit () from /opt/gnome/lib/libgobject-2.0.so.0 
#26 0x408b8df4 in gtk_widget_event_internal ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#27 0x407cb303 in gtk_main_do_event () from /opt/gnome/lib/libgtk-x11-2.0.so.0 
#28 0x409ac2cd in gdk_window_process_updates_internal ()  
from /opt/gnome/lib/libgdk-x11-2.0.so.0 
#29 0x409ac43f in gdk_window_process_all_updates ()  
from /opt/gnome/lib/libgdk-x11-2.0.so.0 
#30 0x407403da in gtk_container_idle_sizer ()  
from /opt/gnome/lib/libgtk-x11-2.0.so.0
Comment 1 Miguel Angel 2005-07-30 21:00:37 UTC
Created attachment 3193 [details]
SSH key for Igor Foox

The patch is against current CVS
Comment 2 Rex Dieter 2005-10-27 06:39:18 UTC
FYI, the "patch" referred to in comment #1 appears only to be a ssh key.  Could
you try resubmitting it here?
Comment 3 Miguel Angel 2005-10-27 07:41:13 UTC
Created attachment 3644 [details] [review]
Patch to check for null pointer in drawTabNG and avoid segfault

Really odd, bugzilla seems to have messed my previous atachment.
Hope this one works
Comment 4 David Sansome 2006-02-03 14:02:30 UTC
Thanks, I've applied the patch to CVS. 


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.