Bug 137463 - kdbus crashes right away
Summary: kdbus crashes right away
Status: RESOLVED NOT A BUG
Alias: None
Product: kde
Classification: I don't know
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Stephan Kulow
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-11-16 20:42 UTC by ville palo
Modified: 2006-11-17 11:47 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description ville palo 2006-11-16 20:42:40 UTC
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;
Comment 1 Stephan Kulow 2006-11-17 11:47:54 UTC
it's nice that you forwarded here, but kdbus is still not maintained here. I think the author is rohan.pm@gmail.com