I've been seeing crashes once or twice a week in ion3 20051210 and
20060107. They seem to typically get triggered when I'm opening or
closing a firefox window that includes flash content. I finally got a
core dump:
gdb bin/ion3 core.0
...
Program terminated with signal 11, Segmentation fault.
...
#0 0x08060c41 in rootwin_do_set_focus (rootwin=0x80bb750, warp=0) at
rootwin.c:448
448 FOR_ALL_SCREENS(scr){
(gdb) bt
#0 0x08060c41 in rootwin_do_set_focus (rootwin=0x80bb750, warp=0) at
rootwin.c:448
#1 0x0805c160 in region_do_set_focus (reg=0x80bb750, warp=0) at region.c:178
#2 0x08056da6 in ioncore_flush () at event.c:191
#3 0x08056e2f in ioncore_mainloop () at event.c:230
#4 0x080568d9 in main (argc=134745490, argv=0xffffffff) at ion.c:289
>From rootwin_do_set_focus() in rootwin.c:
if(sub==NULL || !REGION_IS_MAPPED(sub)){
WScreen *scr;
FOR_ALL_SCREENS(scr){
if(REGION_IS_MAPPED(sub)){
sub=(WRegion*)scr;
break;
}
}
}
>From region.h:
#define REGION_IS_MAPPED(R) (((WRegion*)(R))->flags®ION_MAPPED)
Back to gdb:
(gdb) print sub
$1 = (WRegion *) 0x0
Not knowing anything about the ion source, the "sub == NULL" test
followed by a call to a macro that dereferences sub seems like a bad
idea to me. :)