Bug 316306 - Kleopatra segfaults when trusting a previously untrusted root certificate
Summary: Kleopatra segfaults when trusting a previously untrusted root certificate
Status: RESOLVED WORKSFORME
Alias: None
Product: kleopatra
Classification: Applications
Component: general (show other bugs)
Version: 2.1.1
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: kdepim bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-07 13:32 UTC by A. Sala
Modified: 2013-06-24 15:28 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (9.14 KB, text/plain)
2013-04-19 18:42 UTC, Scott Kitterman
Details

Note You need to log in before you can comment on or make changes to this bug.
Description A. Sala 2013-03-07 13:32:04 UTC
Application: kleopatra (2.1.1)
KDE Platform Version: 4.10.1
Qt Version: 4.8.3
Operating System: Linux 3.5.0-25-generic x86_64
Distribution: Ubuntu 12.10

-- Information about the crash:
- What I was doing when the application crashed:
I imported all certificates in /usr/share/ca-certificates/mozilla.
Nothing was shown... I rebooted and they were shown.
Now, the root certificates are untrusted. Selecting one and with right-clicking trying to move it to the trusted root certificates crashes Kleopatra.
I tried it with three different crt's and the behaviour is repeated.

The crash can be reproduced every time.

-- Backtrace:
Application: Kleopatra (kleopatra), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fc7a64f57c0 (LWP 11636))]

Thread 4 (Thread 0x7fc79ec90700 (LWP 11637)):
#0  0x00007fc7b78a9d2d in read () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007fc7b035a15f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc7b031d914 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc7b031dd22 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fc7b031dea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fc7b4ef8c46 in QEventDispatcherGlib::processEvents (this=0x7fc7980008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007fc7b4ec92ef in QEventLoop::processEvents (this=this@entry=0x7fc79ec8fd90, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007fc7b4ec9578 in QEventLoop::exec (this=0x7fc79ec8fd90, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007fc7b4dcab40 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#9  0x00007fc7b4ea99df in QInotifyFileSystemWatcherEngine::run (this=0x1169570) at io/qfilesystemwatcher_inotify.cpp:248
#10 0x00007fc7b4dcdb1c in QThreadPrivate::start (arg=0x1169570) at thread/qthread_unix.cpp:338
#11 0x00007fc7b78a2e9a in start_thread (arg=0x7fc79ec90700) at pthread_create.c:308
#12 0x00007fc7b4270cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#13 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fc79e48f700 (LWP 11685)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:215
#1  0x00007fc7b4dcdfd7 in wait (time=2000, this=0x111d560) at thread/qwaitcondition_unix.cpp:84
#2  QWaitCondition::wait (this=<optimized out>, mutex=0x116c570, time=2000) at thread/qwaitcondition_unix.cpp:158
#3  0x00000000005b5584 in (anonymous namespace)::ReaderStatusThread::run (this=0x116c560) at ../../kleopatra/smartcard/readerstatus.cpp:543
#4  0x00007fc7b4dcdb1c in QThreadPrivate::start (arg=0x116c560) at thread/qthread_unix.cpp:338
#5  0x00007fc7b78a2e9a in start_thread (arg=0x7fc79e48f700) at pthread_create.c:308
#6  0x00007fc7b4270cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fc78f750700 (LWP 11702)):
#0  0x00007fc7b4265303 in __GI___poll (fds=<optimized out>, nfds=<optimized out>, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fc7b031dd84 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fc7b031dea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fc7b4ef8c46 in QEventDispatcherGlib::processEvents (this=0x7fc7840008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#4  0x00007fc7b4ec92ef in QEventLoop::processEvents (this=this@entry=0x7fc78f74fd90, flags=...) at kernel/qeventloop.cpp:149
#5  0x00007fc7b4ec9578 in QEventLoop::exec (this=0x7fc78f74fd90, flags=...) at kernel/qeventloop.cpp:204
#6  0x00007fc7b4dcab40 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#7  0x00007fc7b4ea99df in QInotifyFileSystemWatcherEngine::run (this=0x15e94d0) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fc7b4dcdb1c in QThreadPrivate::start (arg=0x15e94d0) at thread/qthread_unix.cpp:338
#9  0x00007fc7b78a2e9a in start_thread (arg=0x7fc78f750700) at pthread_create.c:308
#10 0x00007fc7b4270cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fc7a64f57c0 (LWP 11636)):
[KCrash Handler]
#6  QSortFilterProxyModelPrivate::updateChildrenMapping (this=this@entry=0x1508c90, source_parent=..., parent_mapping=parent_mapping@entry=0x150f850, orient=orient@entry=Qt::Vertical, start=start@entry=0, end=end@entry=0, delta_item_count=delta_item_count@entry=1, remove=remove@entry=true) at itemviews/qsortfilterproxymodel.cpp:948
#7  0x00007fc7b5e3a5c0 in source_items_removed (orient=Qt::Vertical, end=0, start=0, source_parent=..., this=<optimized out>) at itemviews/qsortfilterproxymodel.cpp:890
#8  QSortFilterProxyModelPrivate::source_items_removed (this=0x1508c90, source_parent=..., start=0, end=<optimized out>, orient=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:848
#9  0x00007fc7b4edff8f in QMetaObject::activate (sender=0x124ad90, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff331a1960) at kernel/qobject.cpp:3547
#10 0x00007fc7b4f29cb4 in QAbstractItemModel::rowsRemoved (this=<optimized out>, _t1=..., _t2=0, _t3=0) at .moc/release-shared/moc_qabstractitemmodel.cpp:211
#11 0x00007fc7b4ec3f3d in QAbstractItemModel::endRemoveRows (this=0x124ad90) at kernel/qabstractitemmodel.cpp:2487
#12 0x000000000048d2a4 in (anonymous namespace)::HierarchicalKeyListModel::doRemoveKey (this=0x124ad90, key=...) at ../../kleopatra/models/keylistmodel.cpp:873
#13 0x000000000048c143 in Kleo::AbstractKeyListModel::removeKey (this=0x124ad90, key=...) at ../../kleopatra/models/keylistmodel.cpp:225
#14 0x000000000049aec5 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at ./moc_keylistcontroller.cpp:106
#15 Kleo::KeyListController::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./moc_keylistcontroller.cpp:83
#16 0x00007fc7b4edff8f in QMetaObject::activate (sender=0x11557e0, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff331a1cc0) at kernel/qobject.cpp:3547
#17 0x00000000004743d0 in Kleo::KeyCache::aboutToRemove (this=this@entry=0x11557e0, _t1=...) at ./moc_keycache.cpp:127
#18 0x0000000000475ac9 in Kleo::KeyCache::remove (this=this@entry=0x11557e0, key=...) at ../../kleopatra/models/keycache.cpp:623
#19 0x0000000000478824 in Kleo::KeyCache::insert (this=0x11557e0, keys=...) at ../../kleopatra/models/keycache.cpp:737
#20 0x000000000047a0d2 in Kleo::KeyCache::refresh (this=<optimized out>, keys=...) at ../../kleopatra/models/keycache.cpp:700
#21 0x000000000047a167 in Kleo::KeyCache::RefreshKeysJob::Private::updateKeyCache (this=this@entry=0x1b004c0) at ../../kleopatra/models/keycache.cpp:941
#22 0x000000000047a220 in Kleo::KeyCache::RefreshKeysJob::Private::jobDone (this=this@entry=0x1b004c0, result=...) at ../../kleopatra/models/keycache.cpp:891
#23 0x000000000048a715 in Kleo::KeyCache::RefreshKeysJob::Private::listAllKeysJobDone (this=0x1b004c0, res=..., nextKeys=...) at ../../kleopatra/models/keycache.cpp:862
#24 0x00007fc7b4edff8f in QMetaObject::activate (sender=0x1b2af30, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff331a2440) at kernel/qobject.cpp:3547
#25 0x00007fc7b7f90d6e in Kleo::ListAllKeysJob::result (this=0x1b2af30, _t1=..., _t2=..., _t3=..., _t4=..., _t5=...) at ./listallkeysjob.moc:118
#26 0x00007fc7b7fc5ac4 in doEmitResult<GpgME::KeyListResult, std::vector<GpgME::Key>, std::vector<GpgME::Key>, QString, GpgME::Error> (tuple=..., this=<optimized out>) at ../../libkleo/backends/qgpgme/threadedjobmixin.h:222
#27 slotFinished (this=<optimized out>) at ../../libkleo/backends/qgpgme/threadedjobmixin.h:186
#28 qt_static_metacall (_id=<optimized out>, _o=<optimized out>, _c=<optimized out>, _a=<optimized out>) at ./qgpgmelistallkeysjob.moc:49
#29 Kleo::QGpgMEListAllKeysJob::qt_static_metacall (_o=0x1b2af30, _c=28192096, _id=19180944, _a=0x18668a0) at ./qgpgmelistallkeysjob.moc:43
#30 0x00007fc7b4edf46e in QObject::event (this=0x1b2af30, e=<optimized out>) at kernel/qobject.cpp:1195
#31 0x00007fc7b58ace9c in QApplicationPrivate::notify_helper (this=this@entry=0xf579c0, receiver=receiver@entry=0x1b2af30, e=e@entry=0x7fc780001c80) at kernel/qapplication.cpp:4562
#32 0x00007fc7b58b130a in QApplication::notify (this=0x7fff331a32b0, receiver=0x1b2af30, e=0x7fc780001c80) at kernel/qapplication.cpp:4423
#33 0x00007fc7b7278ad6 in KApplication::notify (this=0x7fff331a32b0, receiver=0x1b2af30, event=0x7fc780001c80) at ../../kdeui/kernel/kapplication.cpp:311
#34 0x00007fc7b4eca59e in QCoreApplication::notifyInternal (this=0x7fff331a32b0, receiver=receiver@entry=0x1b2af30, event=event@entry=0x7fc780001c80) at kernel/qcoreapplication.cpp:915
#35 0x00007fc7b4ece421 in sendEvent (event=0x7fc780001c80, receiver=0x1b2af30) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#36 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0xeecb40) at kernel/qcoreapplication.cpp:1539
#37 0x00007fc7b4ef8a93 in sendPostedEvents () at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:236
#38 postEventSourceDispatch (s=0xf65780) at kernel/qeventdispatcher_glib.cpp:279
#39 0x00007fc7b031dab5 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#40 0x00007fc7b031dde8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#41 0x00007fc7b031dea4 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#42 0x00007fc7b4ef8c26 in QEventDispatcherGlib::processEvents (this=0xeee080, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#43 0x00007fc7b5951c1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#44 0x00007fc7b4ec92ef in QEventLoop::processEvents (this=this@entry=0x7fff331a2e40, flags=...) at kernel/qeventloop.cpp:149
#45 0x00007fc7b4ec9578 in QEventLoop::exec (this=0x7fff331a2e40, flags=...) at kernel/qeventloop.cpp:204
#46 0x00007fc7b4ece738 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187
#47 0x000000000043cba5 in main (argc=<optimized out>, argv=0x7fff331a3418) at ../../kleopatra/main.cpp:316

Possible duplicates by query: bug 306051.

Reported using DrKonqi
Comment 1 Scott Kitterman 2013-04-19 18:42:13 UTC
Created attachment 79032 [details]
New crash information added by DrKonqi

kleopatra (2.1.1) on KDE Platform 4.9.5 using Qt 4.8.3

- What I was doing when the application crashed:

I was marking an untrusted GPG key as trusted (this is not just about root certificates).

-- Backtrace (Reduced):
#7  QSortFilterProxyModelPrivate::updateChildrenMapping (this=0x9c02ab0, source_parent=..., parent_mapping=0x9f110c0, orient=Qt::Vertical, start=0, end=0, delta_item_count=1, remove=true) at itemviews/qsortfilterproxymodel.cpp:948
#8  0xb6ab8f7c in source_items_removed (orient=Qt::Vertical, end=0, start=0, source_parent=..., this=0x9c02ab0) at itemviews/qsortfilterproxymodel.cpp:890
#9  QSortFilterProxyModelPrivate::source_items_removed (this=0x9c02ab0, source_parent=..., start=0, end=0, orient=Qt::Vertical) at itemviews/qsortfilterproxymodel.cpp:848
#10 0xb6ab915b in QSortFilterProxyModelPrivate::_q_sourceRowsRemoved (this=0x9c02ab0, source_parent=..., start=0, end=0) at itemviews/qsortfilterproxymodel.cpp:1298
[...]
#12 0xb5f888b5 in QAbstractItemModel::rowsRemoved (this=0x9dc72d8, _t1=..., _t2=0, _t3=0) at .moc/release-shared/moc_qabstractitemmodel.cpp:211
Comment 2 Emanuel Schütze 2013-05-10 07:52:57 UTC
Can't reproduce it with Kleopatra (KDE 4.10.3) of Gpg4win on Windows.
Comment 3 A. Sala 2013-05-13 11:38:39 UTC
In my case, it seems that 4.10.3 (in Kubuntu 13.04) does not segfault, too...
 however, it does not trust the certificate I tried to trust, so this has been not solved correctly as the expected action (import it on the trusted certificate list) does not yet occur.
Comment 4 Emanuel Schütze 2013-06-24 15:28:31 UTC
@A. Sala: 
If Kleoaptra 2.1.1 does not segfault no longer you should create a new bug report with your current "it does not trust the certificate I tried to trust". Please report a step by step instruction to reproduce it with 2.1.1.
Thanks.