Bug 265339

Summary: kgpg crashed when viewing key details
Product: [Applications] kgpg Reporter: Dennis Schridde <heri+kde>
Component: generalAssignee: Rolf Eike Beer <kde>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.6.1
Sentry Crash Report:
Attachments: Try to fix crash by not accessing empty list

Description Dennis Schridde 2011-02-03 21:45:18 UTC
Application: kgpg (2.4.92)
KDE Platform Version: 4.6.00 (4.6.0)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-26-generic i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:
I wanted to view the details of a key in my list (via r-click). kgpg responded that gpg had a problem (unsupported/unrecognized/unknown option --debug-level). When I clicked ok, kgpg crashed.

-- Backtrace:
Application: KGpg (kgpg), signal: Segmentation fault
[Current thread is 1 (Thread 0xb779e710 (LWP 5904))]

Thread 2 (Thread 0xb3d42b70 (LWP 5912)):
#0  __pthread_mutex_unlock_usercnt (mutex=0x8879c94, decr=1) at pthread_mutex_unlock.c:46
#1  0x01dc6fa6 in pthread_mutex_unlock (mutex=0x8879c94) at forward.c:184
#2  0x077be1e6 in ?? () from /lib/libglib-2.0.so.0
#3  0x077be848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0x07bba59f in QEventDispatcherGlib::processEvents (this=0x8874d98, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0x07b8a609 in QEventLoop::processEvents (this=0xb3d42290, flags=) at kernel/qeventloop.cpp:149
#6  0x07b8aa8a in QEventLoop::exec (this=0xb3d42290, flags=...) at kernel/qeventloop.cpp:201
#7  0x07a86b7e in QThread::exec (this=0x8879170) at thread/qthread.cpp:490
#8  0x07b6935b in QInotifyFileSystemWatcherEngine::run (this=0x8879170) at io/qfilesystemwatcher_inotify.cpp:248
#9  0x07a89df9 in QThreadPrivate::start (arg=0x8879170) at thread/qthread_unix.cpp:266
#10 0x01b82cc9 in start_thread (arg=0xb3d42b70) at pthread_create.c:304
#11 0x01db969e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb779e710 (LWP 5904)):
[KCrash Handler]
#7  operator= (this=0xbfacd27c, other=...) at /usr/include/qt4/QtCore/qshareddata.h:95
#8  KgpgCore::KgpgKey::KgpgKey (this=0xbfacd27c, other=...) at ../../kgpg/core/kgpgkey.cpp:190
#9  0x080cd63a in KgpgInterface::readSignatures (this=0x8935db8, node=0x8829b60) at ../../kgpg/kgpginterface.cpp:469
#10 0x08068cd5 in KGpgKeyNode::readChildren (this=0x8829b60) at ../../kgpg/core/KGpgKeyNode.cpp:152
#11 0x0806789e in KGpgKeyNode::expand (this=0x8829b60) at ../../kgpg/core/KGpgKeyNode.cpp:345
#12 0x080decf1 in KgpgKeyInfo::displayKey (this=0x8980988) at ../../kgpg/keyinfodialog.cpp:404
#13 0x080df8fd in KgpgKeyInfo::KgpgKeyInfo (this=0x8980988, node=0x8829b60, model=0x853d4a8, parent=0x84b9bb8) at ../../kgpg/keyinfodialog.cpp:153
#14 0x080becec in KeysManager::keyproperties (this=0x84b9bb8) at ../../kgpg/keysmanager.cpp:1780
#15 0x080c1016 in KeysManager::qt_metacall (this=0x84b9bb8, _c=QMetaObject::InvokeMetaMethod, _id=-1079192964, _a=0xbfacd668) at ./keysmanager.moc:313
#16 0x07b918ca in QMetaObject::metacall (object=0x84b9bb8, cl=31732672, idx=124, argv=0xbfacd668) at kernel/qmetaobject.cpp:237
#17 0x07ba46ad in QMetaObject::activate (sender=0x86cb680, m=0x1a41370, local_signal_index=1, argv=0xbfacd27c) at kernel/qobject.cpp:3280
#18 0x010baf99 in QAction::triggered (this=0x86cb680, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#19 0x010bc8dc in QAction::activate (this=0x86cb680, event=QAction::Trigger) at kernel/qaction.cpp:1256
#20 0x015887ef in QMenuPrivate::activateCausedStack (this=0x86f4220, causedStack=..., action=0x86cb680, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:993
#21 0x0158ea4b in QMenuPrivate::activateAction (this=0x86f4220, action=0x86cb680, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1085
#22 0x0158f5e0 in QMenu::mouseReleaseEvent (this=0x86e59c0, e=0xbfacdf10) at widgets/qmenu.cpp:2301
#23 0x009d2105 in KMenu::mouseReleaseEvent (this=0x86e59c0, e=0xbfacdf10) at ../../kdeui/widgets/kmenu.cpp:458
#24 0x01120e08 in QWidget::event (this=0x86e59c0, event=0xbfacdf10) at kernel/qwidget.cpp:8187
#25 0x0159102f in QMenu::event (this=0x86e59c0, e=0xbfacdf10) at widgets/qmenu.cpp:2410
#26 0x010c2fdc in QApplicationPrivate::notify_helper (this=0x84b8628, receiver=0x86e59c0, e=0xbfacdf10) at kernel/qapplication.cpp:4396
#27 0x010c9c2e in QApplication::notify (this=0x84b3e08, receiver=0x86e59c0, e=0xbfacdf10) at kernel/qapplication.cpp:3959
#28 0x008e0f7a in KApplication::notify (this=0x84b3e08, receiver=0x86e59c0, event=0xbfacdf10) at ../../kdeui/kernel/kapplication.cpp:311
#29 0x07b8bb3b in QCoreApplication::notifyInternal (this=0x84b3e08, receiver=0x86e59c0, event=0xbfacdf10) at kernel/qcoreapplication.cpp:732
#30 0x010c8094 in sendEvent (receiver=0x86e59c0, event=0xbfacdf10, alienWidget=0x0, nativeWidget=0x86e59c0, buttonDown=0x1a5d3c0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#31 QApplicationPrivate::sendMouseEvent (receiver=0x86e59c0, event=0xbfacdf10, alienWidget=0x0, nativeWidget=0x86e59c0, buttonDown=0x1a5d3c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3058
#32 0x01157261 in QETWidget::translateMouseEvent (this=0x86e59c0, event=0xbface42c) at kernel/qapplication_x11.cpp:4337
#33 0x01156151 in QApplication::x11ProcessEvent (this=0x84b3e08, event=0xbface42c) at kernel/qapplication_x11.cpp:3414
#34 0x0118536a in x11EventSourceDispatch (s=0x84c0040, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#35 0x077ba855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#36 0x077be668 in ?? () from /lib/libglib-2.0.so.0
#37 0x077be848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#38 0x07bba565 in QEventDispatcherGlib::processEvents (this=0x8496b70, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#39 0x01184be5 in QGuiEventDispatcherGlib::processEvents (this=0x8496b70, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#40 0x07b8a609 in QEventLoop::processEvents (this=0xbface720, flags=) at kernel/qeventloop.cpp:149
#41 0x07b8aa8a in QEventLoop::exec (this=0xbface720, flags=...) at kernel/qeventloop.cpp:201
#42 0x0158befe in QMenu::exec (this=0x86e59c0, p=..., action=0x0) at widgets/qmenu.cpp:2054
#43 0x080aadd8 in KeysManager::slotMenu (this=0x84b9bb8, pos=...) at ../../kgpg/keysmanager.cpp:1399
#44 0x080c1060 in KeysManager::qt_metacall (this=0x84b9bb8, _c=QMetaObject::InvokeMetaMethod, _id=82, _a=0xbface938) at ./keysmanager.moc:317
#45 0x07b918ca in QMetaObject::metacall (object=0x84b9bb8, cl=31732672, idx=128, argv=0xbface938) at kernel/qmetaobject.cpp:237
#46 0x07ba46ad in QMetaObject::activate (sender=0x86d8ca8, m=0x811d720, local_signal_index=0, argv=0xbfacd27c) at kernel/qobject.cpp:3280
#47 0x01113b83 in QWidget::customContextMenuRequested (this=0x86d8ca8, _t1=...) at .moc/release-shared/moc_qwidget.cpp:360
#48 0x01121797 in QWidget::event (this=0x86d8ca8, event=0xbfacf218) at kernel/qwidget.cpp:8357
#49 0x01542763 in QFrame::event (this=0x86d8ca8, e=0xbfacf218) at widgets/qframe.cpp:557
#50 0x015dfa82 in QAbstractScrollArea::viewportEvent (this=0x1e433c0, e=0x0) at widgets/qabstractscrollarea.cpp:1043
#51 0x0169c0f7 in QAbstractItemView::viewportEvent (this=0x86d8ca8, event=0xbfacf218) at itemviews/qabstractitemview.cpp:1619
#52 0x016de883 in QTreeView::viewportEvent (this=0x86d8ca8, event=0xbfacf218) at itemviews/qtreeview.cpp:1256
#53 0x015e24d5 in viewportEvent (this=0x86da468, o=0x86d8de0, e=0xbfacf218) at widgets/qabstractscrollarea_p.h:100
#54 QAbstractScrollAreaFilter::eventFilter (this=0x86da468, o=0x86d8de0, e=0xbfacf218) at widgets/qabstractscrollarea_p.h:116
#55 0x07b8b29a in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x84b8628, receiver=0x86d8de0, event=0xbfacf218) at kernel/qcoreapplication.cpp:847
#56 0x010c2fb9 in QApplicationPrivate::notify_helper (this=0x84b8628, receiver=0x86d8de0, e=0xbfacf218) at kernel/qapplication.cpp:4392
#57 0x010c9458 in QApplication::notify (this=0x84b3e08, receiver=0x86d8de0, e=0xbfacf218) at kernel/qapplication.cpp:4038
#58 0x008e0f7a in KApplication::notify (this=0x84b3e08, receiver=0x86d8de0, event=0xbfacf218) at ../../kdeui/kernel/kapplication.cpp:311
#59 0x07b8bb3b in QCoreApplication::notifyInternal (this=0x84b3e08, receiver=0x86d8de0, event=0xbfacf218) at kernel/qcoreapplication.cpp:732
#60 0x0115b62e in QCoreApplication::sendSpontaneousEvent (receiver=0x86d8de0, event=0x0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:218
#61 0x01156d7c in QETWidget::translateMouseEvent (this=0x86d8ca8, event=0xbfacf70c) at kernel/qapplication_x11.cpp:4408
#62 0x01156151 in QApplication::x11ProcessEvent (this=0x84b3e08, event=0xbfacf70c) at kernel/qapplication_x11.cpp:3414
#63 0x0118536a in x11EventSourceDispatch (s=0x84c0040, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#64 0x077ba855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#65 0x077be668 in ?? () from /lib/libglib-2.0.so.0
#66 0x077be848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#67 0x07bba565 in QEventDispatcherGlib::processEvents (this=0x8496b70, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#68 0x01184be5 in QGuiEventDispatcherGlib::processEvents (this=0x8496b70, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#69 0x07b8a609 in QEventLoop::processEvents (this=0xbfacfa04, flags=) at kernel/qeventloop.cpp:149
#70 0x07b8aa8a in QEventLoop::exec (this=0xbfacfa04, flags=...) at kernel/qeventloop.cpp:201
#71 0x07b8f00f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#72 0x010c1e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#73 0x080c4836 in main (argc=1, argv=0xbfacfc34) at ../../kgpg/main.cpp:57

Reported using DrKonqi
Comment 1 Rolf Eike Beer 2011-02-03 23:00:24 UTC
Which gpg version are you using (gpg --version will tell you). I thought I had this debug-level stuff fixed already.
Comment 2 Dennis Schridde 2011-02-04 09:03:08 UTC
1.4.10 (gpg) and 2.0.14 (gpg2)
Comment 3 Rolf Eike Beer 2011-02-06 21:51:52 UTC
For the moments things might get better if you go into the KGpg configuration and configure it to use gpg2.
Comment 4 Rolf Eike Beer 2011-02-12 08:21:54 UTC
Created attachment 57179 [details]
Try to fix crash by not accessing empty list

Please try the attached patch and report if that fixes the issue.
Comment 5 Rolf Eike Beer 2011-02-14 07:53:58 UTC
SVN commit 1220544 by dakon:

do not crash if searching for signatures gives no results

CCBUG:265339

 M  +3 -0      kgpginterface.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1220544
Comment 6 Rolf Eike Beer 2011-02-22 15:26:28 UTC
SVN commit 1222286 by dakon:

do not crash if searching for signatures gives no results

BUG:265339

backport of r1220544


 M  +3 -0      kgpginterface.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1222286