Bug 2254 - segfault in render/render.c on sendtodesktop [endian?]
Status: CLOSED FIXED
Alias: None
Product: Openbox
Classification: Unclassified
Component: general
Version: 3.2
Hardware: Macintosh Linux
: P2 normal
Assignee: Dana Jansens
QA Contact:
URL: http://bugs.debian.org/281489
Depends on:
Blocks:
 
Reported: 2005-05-01 07:01 EDT by Tore Anderson
Modified: 2007-03-04 04:21:49 EST
0 users

See Also:



Description Tore Anderson 2005-05-01 07:01:35 EDT
Forwarded from Don Armstrong:
-----------------------------

Pressing the keycombinations that runs sendtodesktop causes openbox to
segfault (on ppc) with the following backtrace:

(gdb) bt full
#0  0x0f831bc0 in kill () from /lib/libc.so.6
No symbol table info available.
#1  0x0fa8a8cc in pthread_kill () from /lib/libpthread.so.0
No symbol table info available.
#2  0x0fa8ad48 in raise () from /lib/libpthread.so.0
No symbol table info available.
#3  0x0f8319a8 in raise () from /lib/libc.so.6
No symbol table info available.
#4  0x0f8330c0 in abort () from /lib/libc.so.6
No symbol table info available.
#5  0x10029fdc in sighandler (sig=11) at openbox/mainloop.c:424
	it = (GSList *) 0x7ffff150
	i = 1
#6  0x0fa8daf8 in __pthread_sighandler () from /lib/libpthread.so.0
No symbol table info available.
#7  <signal handler called>
No symbol table info available.
#8  0x0fa88ce0 in pthread_mutex_lock () from /lib/libpthread.so.0
No symbol table info available.
#9  0x0f87911c in free () from /lib/libc.so.6
No symbol table info available.
#10 0x0fde9f7c in g_free () from /usr/lib/libglib-2.0.so.0
No symbol table info available.
#11 0x0f990090 in RrPaint (a=0x100a4df0, win=10485895, w=2, h=2) at
render/render.c:67
	i = 269090152
	transferred = 0
	sw = 2147481552
	source = (RrPixel32 *) 0x7d
	dest = (RrPixel32 *) 0x10
	oldp = 10485912
	tarea = {x = 46, y = 268836208, width = 261820584, height = 2147481424}
	resized = 0
#12 0x1003556c in pager_popup_draw_icon (px=5, py=22, w=46, h=46,
data=0x1006b730) at openbox/popup.c:380
	a = (RrAppearance *) 0x100a4df0
	self = (ObPagerPopup *) 0x1006b730
	x = 0
	y = 0
	i = 0
	rown = 0
	n = 0
	horz_inc = 1
	vert_inc = 12
	r = 0
	c = 0
	eachw = 2
	eachh = 2
#13 0x10034c44 in popup_show (self=0x100a4cf0, text=0x10072c88 "one") at
openbox/popup.c:201
	l = 0
	t = 0
	r = 0
	b = 0
	x = 416
	y = 360
	w = 320
	h = 48
	textw = 271
	texth = 46
	iconw = 46
	area = (Rect *) 0x100aa980
#14 0x100359c0 in pager_popup_show (self=0x1006b730, text=0x10072c88 "one",
desk=0) at openbox/popup.c:450
	i = 12
#15 0x1003aeb0 in screen_desktop_popup (d=0, show=1) at openbox/screen.c:601
	a = (Rect *) 0x100aa970
#16 0x1003b3cc in screen_cycle_desktop (dir=OB_DIRECTION_WEST, wrap=0, linear=0,
dialog=1, done=0, cancel=0)
    at openbox/screen.c:735
	first = 0
	origd = 0
	d = 0
	r = 0
	c = 4294967295
#17 0x1000d0e8 in action_send_to_desktop_dir (data=0x1006c088) at
openbox/action.c:1303
	c = (ObClient *) 0x100cccd0
	d = 268877952
#18 0x1000befc in action_run_list (acts=0x100609f0, c=0x100cccd0,
context=OB_FRAME_CONTEXT_NONE, state=9, button=0, 
    x=830, y=373, cancel=0, done=0) at openbox/action.c:964
	it = (GSList *) 0x100609f0
	a = (ObAction *) 0x1006c080
	inter = 1
#19 0x10028aa8 in keyboard_event (client=0x100cccd0, e=0x7ffffab0) at
openbox/keyboard.c:282
	p = (KeyBindingTree *) 0x1006c0c0
#20 0x1001e6cc in event_process (ec=0x7ffffb70, data=0x0) at openbox/event.c:543
	window = 64
	group = (ObGroup *) 0x0
	client = (ObClient *) 0x100cccd0
	dock = (ObDock *) 0x0
	dockapp = (ObDockApp *) 0x0
	obwin = (ObWindow *) 0x0
	ee = {type = 2, xany = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, window = 64}, xkey = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, window = 64,
root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
keycode = 100, same_screen = 1}, 
  xbutton = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
button = 100, same_screen = 1}, 
  xmotion = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
is_hint = 0 '\0', same_screen = 1}, 
  xcrossing = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, mode = 9,
detail = 100, same_screen = 1, 
    focus = -1375653890, state = 1220739707}, xfocus = {type = 2, serial = 2528,
send_event = 0, 
    display = 0x10061d70, window = 64, mode = 64, detail = 0}, xexpose = {type =
2, serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, x = 64, y = 0, width = 34563439, height =
830, count = 373}, 
  xgraphicsexpose = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, drawable = 64, x = 64, y = 0, 
    width = 34563439, height = 830, count = 373, major_code = 830, minor_code =
373}, xnoexpose = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, drawable = 64,
major_code = 64, minor_code = 0}, 
  xvisibility = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, state = 64}, 
  xcreatewindow = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, parent = 64, window = 64, x = 0, 
    y = 34563439, width = 830, height = 373, border_width = 830,
override_redirect = 373}, xdestroywindow = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, event = 64,
window = 64}, xunmap = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, event = 64, window =
64, from_configure = 0}, xmap = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, event = 64,
window = 64, override_redirect = 0}, 
  xmaprequest = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
parent = 64, window = 64}, 
  xreparent = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
event = 64, window = 64, parent = 0, 
    x = 34563439, y = 830, override_redirect = 373}, xconfigure = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, event = 64, window = 64, x = 0, y = 34563439, width =
830, height = 373, 
    border_width = 830, above = 373, override_redirect = 9}, xgravity = {type =
2, serial = 2528, send_event = 0, 
    display = 0x10061d70, event = 64, window = 64, x = 0, y = 34563439},
xresizerequest = {type = 2, serial = 2528, 
    send_event = 0, display = 0x10061d70, window = 64, width = 64, height = 0},
xconfigurerequest = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, parent = 64, window =
64, x = 0, y = 34563439, width = 830, 
    height = 373, border_width = 830, above = 373, detail = 9, value_mask =
100}, xcirculate = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, event = 64, window =
64, place = 0}, xcirculaterequest = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, parent = 64,
window = 64, place = 0}, xproperty = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, window = 64,
atom = 64, time = 0, 
    state = 34563439}, xselectionclear = {type = 2, serial = 2528, send_event =
0, display = 0x10061d70, window = 64, 
    selection = 64, time = 0}, xselectionrequest = {type = 2, serial = 2528,
send_event = 0, display = 0x10061d70, 
    owner = 64, requestor = 64, selection = 0, target = 34563439, property =
830, time = 373}, xselection = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, requestor =
64, selection = 64, target = 0, 
    property = 34563439, time = 830}, xcolormap = {type = 2, serial = 2528,
send_event = 0, display = 0x10061d70, 
    window = 64, colormap = 64, new = 0, state = 34563439}, xclient = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, message_type = 64, format = 0, data = {
      b = "\002\017eo\000\000\003>\000\000\001u\000\000\003>\000\000\001u", s =
{527, 25967, 0, 830, 0, 373, 0, 830, 
        0, 373}, l = {34563439, 830, 373, 830, 373}}}, xmapping = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, request = 64, first_keycode = 0, count =
34563439}, xerror = {type = 2, 
    display = 0x9e0, resourceid = 0, serial = 268836208, error_code = 0 '\0',
request_code = 0 '\0', 
    minor_code = 0 '\0'}, xkeymap = {type = 2, serial = 2528, send_event = 0,
display = 0x10061d70, window = 64, 
    key_vector =
"\000\000\000@\000\000\000\000\002\017eo\000\000\003>\000\000\001u\000\000\003>\000\000\001u\000\000\000\t"},
pad = {2, 2528, 0, 268836208, 64, 64, 0, 34563439, 830, 373, 830, 373, 9, 100,
1, -1375653890, 1220739707, 
    -50659586, 2108620501, 28754941, -2029805055, 996595112, -257229113,
1725147888}}
	e = (XEvent *) 0x7ffffab0
	ed = (ObEventData *) 0x0
#21 0x10029b40 in ob_main_loop_run (loop=0x10063238) at openbox/mainloop.c:313
	h = (ObMainLoopXHandlerType *) 0x10073768
	e = {type = 2, xany = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, window = 64}, xkey = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, window = 64,
root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
keycode = 100, same_screen = 1}, 
  xbutton = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
button = 100, same_screen = 1}, 
  xmotion = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, state = 9,
is_hint = 0 '\0', same_screen = 1}, 
  xcrossing = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, root = 64, subwindow = 0, 
    time = 34563439, x = 830, y = 373, x_root = 830, y_root = 373, mode = 9,
detail = 100, same_screen = 1, 
    focus = -1375653890, state = 1220739707}, xfocus = {type = 2, serial = 2528,
send_event = 0, 
    display = 0x10061d70, window = 64, mode = 64, detail = 0}, xexpose = {type =
2, serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, x = 64, y = 0, width = 34563439, height =
830, count = 373}, 
  xgraphicsexpose = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, drawable = 64, x = 64, y = 0, 
    width = 34563439, height = 830, count = 373, major_code = 830, minor_code =
373}, xnoexpose = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, drawable = 64,
major_code = 64, minor_code = 0}, 
  xvisibility = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
window = 64, state = 64}, 
  xcreatewindow = {type = 2, serial = 2528, send_event = 0, display =
0x10061d70, parent = 64, window = 64, x = 0, 
    y = 34563439, width = 830, height = 373, border_width = 830,
override_redirect = 373}, xdestroywindow = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, event = 64,
window = 64}, xunmap = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, event = 64, window =
64, from_configure = 0}, xmap = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, event = 64,
window = 64, override_redirect = 0}, 
  xmaprequest = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
parent = 64, window = 64}, 
  xreparent = {type = 2, serial = 2528, send_event = 0, display = 0x10061d70,
event = 64, window = 64, parent = 0, 
    x = 34563439, y = 830, override_redirect = 373}, xconfigure = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, event = 64, window = 64, x = 0, y = 34563439, width =
830, height = 373, 
    border_width = 830, above = 373, override_redirect = 9}, xgravity = {type =
2, serial = 2528, send_event = 0, 
    display = 0x10061d70, event = 64, window = 64, x = 0, y = 34563439},
xresizerequest = {type = 2, serial = 2528, 
    send_event = 0, display = 0x10061d70, window = 64, width = 64, height = 0},
xconfigurerequest = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, parent = 64, window =
64, x = 0, y = 34563439, width = 830, 
    height = 373, border_width = 830, above = 373, detail = 9, value_mask =
100}, xcirculate = {type = 2, 
    serial = 2528, send_event = 0, display = 0x10061d70, event = 64, window =
64, place = 0}, xcirculaterequest = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, parent = 64,
window = 64, place = 0}, xproperty = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, window = 64,
atom = 64, time = 0, 
    state = 34563439}, xselectionclear = {type = 2, serial = 2528, send_event =
0, display = 0x10061d70, window = 64, 
    selection = 64, time = 0}, xselectionrequest = {type = 2, serial = 2528,
send_event = 0, display = 0x10061d70, 
    owner = 64, requestor = 64, selection = 0, target = 34563439, property =
830, time = 373}, xselection = {
    type = 2, serial = 2528, send_event = 0, display = 0x10061d70, requestor =
64, selection = 64, target = 0, 
    property = 34563439, time = 830}, xcolormap = {type = 2, serial = 2528,
send_event = 0, display = 0x10061d70, 
    window = 64, colormap = 64, new = 0, state = 34563439}, xclient = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, message_type = 64, format = 0, data = {
      b = "\002\017eo\000\000\003>\000\000\001u\000\000\003>\000\000\001u", s =
{527, 25967, 0, 830, 0, 373, 0, 830, 
        0, 373}, l = {34563439, 830, 373, 830, 373}}}, xmapping = {type = 2,
serial = 2528, send_event = 0, 
    display = 0x10061d70, window = 64, request = 64, first_keycode = 0, count =
34563439}, xerror = {type = 2, 
    display = 0x9e0, resourceid = 0, serial = 268836208, error_code = 0 '\0',
request_code = 0 '\0', 
    minor_code = 0 '\0'}, xkeymap = {type = 2, serial = 2528, send_event = 0,
display = 0x10061d70, window = 64, 
    key_vector =
"\000\000\000@\000\000\000\000\002\017eo\000\000\003>\000\000\001u\000\000\003>\000\000\001u\000\000\000\t"},
pad = {2, 2528, 0, 268836208, 64, 64, 0, 34563439, 830, 373, 830, 373, 9, 100,
1, -1375653890, 1220739707, 
    -50659586, 2108620501, 28754941, -2029805055, 996595112, -257229113,
1725147888}}
	wait = (struct timeval *) 0x0
	selset = {__fds_bits = {8, 0 <repeats 31 times>}}
	it = (GSList *) 0x1006eb40
	act = (ObAction *) 0x100ca8d0
#22 0x10031cf8 in main (argc=1, argv=0x7ffffdb4) at openbox/openbox.c:274
No locals.


The corefile and the .deb used to generate the backtrace will be at
http://rzlab.ucr.edu/debian/<thisbugnum>/

The bug is trivially repeatable on PPC, but I haven't encountered it
yet on i386.
Comment 1 Mikachu 2006-08-02 10:09:31 EDT
Could you try this again with ob cvs? There were some 64-bit fixes recently, perhaps this was also fixed then. *optimist*
Comment 2 Tore Anderson 2006-08-04 02:07:42 EDT
The submitter said the following when I asked him to try a CVS snapshot:

> Unfortunatly, I don't use openbox anymore;[1] however, this error only
> showed up on my ppc machines when I was playing with it, so it
> appeared to be an endian-ness issue as opposed to a 64 bit one.
> 
> Don Armstrong
> 
> 1: I've pretty much switch to ion3 everywhere.

So do feel free to close the bug.

Tore
Comment 3 Dana Jansens 2007-03-04 04:20:59 EST
Oh.. so, line 67 doesn't have a g_free anymore. I'm guessing it means the one just below? However, I'm really not sure why that would ever die. It's initialized to NULL, and the line after it's deleted, it's allocated something new -> it always has NULL or something valid there..

Maybe this has moved or been fixed. I'd like to hear about this and get a backtrace from current SVN if that's at all possible. :/ I'm not sure what to do with it otherwise.
Comment 4 Dana Jansens 2007-03-04 04:21:39 EST
Oops...

"So do feel free to close the bug."

The backtrace was too long, I never saw that. Heh. Yay, then.