Version: kdbus 0.8.6 (using KDE KDE 3.5.5) Installed from: Ubuntu Packages OS: Linux This bug is forwarded from ubuntu bug tracking system: https://launchpad.net/distros/ubuntu/+source/kdbus/+bug/71967 Original description: finalbeta@finalbeta-desktop:~$ kdbus X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device kbuildsycoca running... KCrash: Application 'kdbus' crashing... X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device X Error: BadDevice, invalid or uninitialized input device 168 Major opcode: 148 Minor opcode: 3 Resource id: 0x0 Failed to open device kio (KMimeType): WARNING: KServiceType::offers : servicetype ThumbCreator not found kio (KMimeType): WARNING: KServiceType::offers : servicetype ThumbCreator not found ---------------------- Valgrind shows who is the guilty one: ==30872== Invalid free() / delete / delete[] ==30872== at 0x4020CC7: operator delete(void*) (vg_replace_malloc.c:244) ==30872== by 0x4B83656: QDomNodePrivate::~QDomNodePrivate() (in /usr/lib/libqt-mt.so.3.3.6) ==30872== by 0x4B7F9C6: QDomNode::operator=(QDomNode const&) (in /usr/lib/libqt-mt.so.3.3.6) ==30872== by 0x80603E8: DBusObject::DBusObject(QListViewItem*, QDomElement const&, QDBusProxy*) (dbusobject.cpp:117) ==30872== by 0x8060185: DBusObject::DBusObject(QListViewItem*, QDomElement const&, QDBusProxy*) (dbusobject.cpp:102) ==30872== by 0x8060185: DBusObject::DBusObject(QListViewItem*, QDomElement const&, QDBusProxy*) (dbusobject.cpp:102) ==30872== by 0x8060185: DBusObject::DBusObject(QListViewItem*, QDomElement const&, QDBusProxy*) (dbusobject.cpp:102) ==30872== by 0x8060185: DBusObject::DBusObject(QListViewItem*, QDomElement const&, QDBusProxy*) (dbusobject.cpp:102) and here's a fix for this: diff -Nru /tmp/UmEr5XxZBT/kdbus-0.8.6/src/dbusobject.cpp /tmp/ZYbknD8jCH/kdbus-0.8.6/src/dbusobject.cpp --- /tmp/UmEr5XxZBT/kdbus-0.8.6/src/dbusobject.cpp 2006-02-18 07:23:48.000000000 +0200 +++ /tmp/ZYbknD8jCH/kdbus-0.8.6/src/dbusobject.cpp 2006-11-16 20:47:02.000000000 +0200 @@ -88,19 +88,19 @@ // Now iterate through self, enumerating interfaces, properties, and // other objects. - myElem = myElem.firstChild().toElement(); + QDomElement childElement = myElem.firstChild().toElement(); try { do { - if ( myElem.tagName() == "node" ) - new DBusObject( this, myElem, d->proxy ); - else if ( myElem.tagName() == "interface" ) - new DBusInterface( this, myElem ); + if ( childElement.tagName() == "node" ) + new DBusObject( this, childElement, d->proxy ); + else if ( childElement.tagName() == "interface" ) + new DBusInterface( this, childElement ); else kdWarning() << "Unhandled node in introspect data: " - << myElem.tagName() << endl; - myElem = myElem.nextSibling().toElement(); - } while ( !myElem.isNull() ); + << childElement.tagName() << endl; + childElement = childElement.nextSibling().toElement(); + } while ( !childElement.isNull() ); } catch ( std::runtime_error const & e ) { m_ok = false;
it's nice that you forwarded here, but kdbus is still not maintained here. I think the author is rohan.pm@gmail.com