On Sun, Jan 07, 2007 at 07:19:57PM +0100, Denis Oliver Kropp wrote:
> Ville Syrjälä wrote:
> > Not sure. A core dump might at least give me a better idea where to 
> > start looking...
> 
> I think I could run it remotely in a gdb.

The core dump problem was me logging out and ulimit -c resetting itself 
to 0 :)

I tried to look at this a bit but the real bug still eludes me.

This ugly hack eliminates the crash, but causes a double free on exit.

--- o/xorg-server-1.1.1/xkb/xkb.c       2006-07-05 21:38:48.000000000 +0300
+++ xorg-server-1.1.1/xkb/xkb.c 2007-01-07 21:18:55.000000000 +0200
@@ -2910,6 +2910,9 @@
     if (!sli)
        return BadAlloc;
 
+    if (!sli->maps)//
+       sli->maps = xkbi->desc->indicators->maps;//
+
     from = (xkbIndicatorMapWireDesc *)&stuff[1];
     for (i=0,bit=1;i<XkbNumIndicators;i++,bit<<=1) {
        if (stuff->which&bit) {

Something manages to clear the maps pointer. It is allocated just fine 
and it is fine during some other xkb calls. I didn't figure out what 
clears the pointer. I added printfs to all obvious places but that 
didn't reveal anything. Xorg server built from the exact same source 
tree works fine. gdb + watchpoint could help here.

I also found another bug. The code uses XKB_BASE_DIRECTORY but configure 
doesn't turn that into an absolute path. That caused some xkb warnings 
during server startup. I fixed that by passing --with-xkb-path=... to 
configure.

-- 
Ville Syrjälä
[EMAIL PROTECTED]
http://www.sci.fi/~syrjala/

_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev

Reply via email to