Introspection format problem/kdbus crash
Havoc Pennington
hp at redhat.com
Mon Oct 22 16:04:11 PDT 2007
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
More information about the dbus
mailing list