Bug 374509

Summary: Kgpg crashes with segfault during initialization
Product: [Applications] kgpg Reporter: Andreas <hohenegger>
Component: generalAssignee: Rolf Eike Beer <kde>
Status: RESOLVED FIXED    
Severity: crash Keywords: drkonqi
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Neon   
OS: Linux   
Latest Commit: Version Fixed In: 16.12.1
Sentry Crash Report:

Description Andreas 2017-01-03 20:50:46 UTC
Application: kgpg (16.12.0)

Qt Version: 5.7.0
Frameworks Version: 5.29.0
Operating System: Linux 4.4.0-57-generic x86_64
Distribution: KDE neon User Edition 5.8

-- Information about the crash:
- What I was doing when the application crashed:
Start kgpg.

- Custom settings of the application:
I have an existing directory .gnugpg with my configuration.
If I remove it the crash does not occur.

May be related to fixed bugs 373408 or 371410, but I have kgpg 16.12.0 from kde neon.

The crash can be reproduced every time.

-- Backtrace:
Application: KGpg (kgpg), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f5f333f6980 (LWP 7202))]

Thread 3 (Thread 0x7f5f21032700 (LWP 7213)):
#0  0x00007f5f5111fb5d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5f4b48e39c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5f4b48e4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5f51c6023b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f5f51c0acea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f5f51a2ffb4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f5f51a34b98 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007f5f4d97e6ba in start_thread (arg=0x7f5f21032700) at pthread_create.c:333
#8  0x00007f5f5112b82d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f5f293ca700 (LWP 7208)):
#0  0x00007f5f5111fb5d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f5f4b48e39c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f5f4b48e4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f5f51c6023b in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007f5f51c0acea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007f5f51a2ffb4 in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007f5f5686e7a5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#7  0x00007f5f51a34b98 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f5f4d97e6ba in start_thread (arg=0x7f5f293ca700) at pthread_create.c:333
#9  0x00007f5f5112b82d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f5f333f6980 (LWP 7202)):
[KCrash Handler]
#6  std::__atomic_base<int>::load (__m=std::memory_order_relaxed, this=0x0) at /usr/include/c++/5/bits/atomic_base.h:396
#7  QAtomicOps<int>::load<int> (_q_value=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qatomic_cxx11.h:103
#8  QBasicAtomicInteger<int>::load (this=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qbasicatomic.h:99
#9  QtPrivate::RefCount::ref (this=0x0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:55
#10 QString::QString (other=..., this=0x1e5ddd0) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qstring.h:899
#11 KgpgCore::KgpgKeyPrivate::KgpgKeyPrivate (this=0x1e5dd70, id=..., size=<optimized out>, trust=..., algo=..., subtype=..., keytype=..., creationDate=..., curve=...) at /workspace/build/core/kgpgkey.cpp:178
#12 0x00000000004372c9 in KgpgCore::KgpgKey::KgpgKey (this=0x7ffd223b1640, id=..., size=1024, trust=..., algo=..., subtype=..., keytype=..., creationDate=..., curve=...) at /workspace/build/core/kgpgkey.cpp:205
#13 0x00000000004af366 in readSecretKeysProcess (p=...) at /workspace/build/kgpginterface.cpp:347
#14 KgpgInterface::readSecretKeys (ids=...) at /workspace/build/kgpginterface.cpp:415
#15 0x0000000000440029 in KGpgRootNode::addKeys (this=0x1c0f130, ids=...) at /workspace/build/core/KGpgRootNode.cpp:71
#16 0x0000000000453b5c in KGpgItemModel::refreshAllKeys (this=0x1c10c40) at /workspace/build/model/kgpgitemmodel.cpp:474
#17 0x0000000000487620 in KeysManager::refreshkey (this=0x1bea100) at /workspace/build/keysmanager.cpp:2648
#18 0x00000000004e6f53 in KeysManager::qt_static_metacall (_o=0x1bea100, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at /workspace/build/obj-x86_64-linux-gnu/moc_keysmanager.cpp:431
#19 0x00007f5f51c38a19 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f5f5279c58b in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f5f528994cb in QMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f5f54ae1fc7 in KMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#23 0x00007f5f54b26485 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#24 0x00007f5f5275589c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007f5f5275d296 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007f5f51c0ccf8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f5f51c0f3bb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007f5f51c5fe13 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007f5f4b48e1a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007f5f4b48e400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007f5f4b48e4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007f5f51c6021f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#33 0x00007f5f51c0acea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#34 0x00007f5f51c132fc in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#35 0x0000000000433599 in main (argc=1, argv=<optimized out>) at /workspace/build/main.cpp:84

Possible duplicates by query: bug 372712, bug 371410.

Reported using DrKonqi
Comment 1 Rolf Eike Beer 2017-01-03 21:47:56 UTC
Git commit ac2ca301c6ef2d02810b762c618f1ce504382c4e by Rolf Eike Beer.
Committed on 03/01/2017 at 21:47.
Pushed by dakon into branch 'Applications/16.12'.

fix crash when GnuPG does not output curve fields for keys, take 3

secret keys, it is.
Related: bug 371410, bug 373408
FIXED-IN:16.12.1

M  +2    -1    kgpginterface.cpp

https://commits.kde.org/kgpg/ac2ca301c6ef2d02810b762c618f1ce504382c4e