[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-dbus
Subject:    Re: Introspection format problem/kdbus crash
From:       Havoc Pennington <hp () redhat ! com>
Date:       2007-10-22 23:04:11
Message-ID: 471D2C6B.8090901 () redhat ! com
[Download RAW message or body]

Hi,

Andrew Clunis wrote:
> This causes kdbus to crash on start with:
> 
> terminate called after throwing an instance of 'std::logic_error'
>   what():  DBusObject is not root object, but is not child of another
> DBusObject!
> KCrash: Application 'kdbus' crashing...
> 

Wild guess - maybe you should only handle the Introspect() call if it's 
sent to your object path. It looks like you're sending the reply for the 
/org/bulix/LCD4Linux object regardless of which object was introspected.

If you return NOT_YET_HANDLED if any other object is introspected, then 
libdbus will handle the introspect for you by just listing any 
registered child nodes.

Incidentally,
"/* for reasons unknown, this causes !message->in_cache assertion failures."

The reason is that it causes a double-free of the message, since you 
don't own a ref. You don't need to unref there.

Havoc

_______________________________________________
dbus mailing list
dbus@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dbus
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic