SUMMARY I get a segfault when trying to send an PGP encrypted email: Thread 1 (Thread 0x7fffe62b5040 (LWP 11283)): #0 0x00007fff164c2707 in KMime::Headers::Base::is(char const*) const (this=this@entry=0x555558b5bc90, t=t@entry=0x7fff164daff4 "Content-Type") at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_headers.cpp:153 #1 0x00007fff164c2767 in KMime::Content::headerByType(char const*) const (this=this@entry=0x555558e7ce10, type=0x7fff164daff4 "Content-Type") at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.cpp:625 h = 0x555558b5bc90 __for_range = <optimized out> #2 0x00007fff164c2fa9 in KMime::Content::header<KMime::Headers::ContentType>(bool) (create=true, this=0x555558e7ce10) at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.h:693 h = <optimized out> #3 KMime::Content::contentType(bool) (this=0x555558e7ce10, create=<optimized out>) at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.cpp:877 #4 0x00007fff159591a6 in () at /usr/lib64/libKF5MessageComposer.so.5 #5 0x00007fff158faa64 in () at /usr/lib64/libKF5MessageComposer.so.5 #6 0x00007ffff6be6116 in () at /usr/lib64/libQt5Core.so.5 #7 0x00007fff153ff0b1 in QGpgME::EncryptJob::result(GpgME::EncryptionResult const&, QByteArray const&, QString const&, GpgME::Error const&) () at /usr/lib64/libqgpgme.so.7 #8 0x00007fff15416452 in QGpgME::_detail::ThreadedJobMixin<QGpgME::EncryptJob, std::tuple<GpgME::EncryptionResult, QByteArray, QString, GpgME::Error> >::slotFinished() () at /usr/lib64/libqgpgme.so.7 #9 0x00007ffff6bdbb61 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5 #10 0x00007ffff77070cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #11 0x00007ffff6bafc3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #12 0x00007ffff6bb2661 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5 #13 0x00007ffff6c079f3 in () at /usr/lib64/libQt5Core.so.5 #14 0x00007fffede0d2b7 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #15 0x00007fffede0d638 in () at /usr/lib64/libglib-2.0.so.0 #16 0x00007fffede0d6ef in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #17 0x00007ffff6c0707f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #18 0x00007ffff6bae5fb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #19 0x00007ffff6bb6860 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #20 0x0000555555558fc7 in () #21 0x00007ffff6579cca in __libc_start_main () at /lib64/libc.so.6 #22 0x000055555555961a in () STEPS TO REPRODUCE 1. Open Kmail 2. Write a mail and select PGP/GPG encryption and send it SOFTWARE/OS VERSIONS openSUSE Tumbleweed KDE Plasma Version: 5.19.4 KDE Frameworks Version: 5.73.0 Qt Version: 5.15.0 KMail: 5.15.0 (20.08.0)
Hi, Please install debug symbol for messagelib too. Regards
(gdb) bt full #0 0x0000000000000000 in () #1 0x00007fff11cc170a in KMime::Headers::Base::is(char const*) const (this=this@entry=0x5555586303b0, t=t@entry=0x7fff11cd9ff4 "Content-Type") at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_headers.cpp:153 #2 0x00007fff11cc1767 in KMime::Content::headerByType(char const*) const (this=this@entry=0x55555861c300, type=0x7fff11cd9ff4 "Content-Type") at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.cpp:625 h = 0x5555586303b0 __for_range = <optimized out> #3 0x00007fff11cc1fa9 in KMime::Content::header<KMime::Headers::ContentType>(bool) (create=true, this=0x55555861c300) at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.h:693 h = <optimized out> #4 KMime::Content::contentType(bool) (this=this@entry=0x55555861c300, create=create@entry=true) at /usr/src/debug/kmime-20.08.0-1.2.x86_64/src/kmime_content.cpp:877 #5 0x00007fff111581a6 in MessageComposer::Util::composeHeadersAndBody(KMime::Content*, QByteArray, Kleo::CryptoMessageFormat, bool, QByteArray const&) (orig=0x55555861c300, encodedBody=..., format=<optimized out>, sign=<optimized out>, hashAlgo=...) at /usr/src/debug/messagelib-20.08.0-1.2.x86_64/messagecomposer/src/utils/util.cpp:89 vers = <optimized out> boundary = { d = 0x555559113ed0 } code = 0x555559ccb1f0 result = 0x555559ce1d10 #6 0x00007fff110f9a64 in operator() (auditLogAsHtml=..., auditLogError=..., cipherText=..., result=..., __closure=0x555559d7e9e0) at /usr/include/qt5/QtCore/qrefcount.h:60 d = 0x555559ce1750 this = 0x555559d8b3f0 #7 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2, 3>, QtPrivate::List<const GpgME::EncryptionResult&, const QByteArray&, const QString&, const GpgME::Error&>, void, MessageComposer::EncryptJob::process()::<lambda(const GpgME::EncryptionResult&, const QByteArray&, const QString&, const GpgME::Error&)> >::call (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:146 #8 QtPrivate::Functor<MessageComposer::EncryptJob::process()::<lambda(const GpgME::EncryptionResult&, const QByteArray&, const QString&, const GpgME::Error&)>, 4>::call<QtPrivate::List<GpgME::EncryptionResult const&, QByteArray const&, QString const&, GpgME::Error const&>, void> (arg=<optimized out>, f=...) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:256 #9 QtPrivate::QFunctorSlotObject<MessageComposer::EncryptJob::process()::<lambda(const GpgME::EncryptionResult&, const QByteArray&, const QString&, const GpgME::Error&)>, 4, QtPrivate::List<const GpgME::EncryptionResult&, const QByteArray&, const QString&, const GpgME::Error&>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x555559d7e9d0, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt5/QtCore/qobjectdefs_impl.h:443 #10 0x00007ffff6be6116 in () at /usr/lib64/libQt5Core.so.5 #11 0x00007fff10bfe0b1 in QGpgME::EncryptJob::result(GpgME::EncryptionResult const&, QByteArray const&, QString const&, GpgME::Error const&) () at /usr/lib64/libqgpgme.so.7 #12 0x00007fff10c15452 in QGpgME::_detail::ThreadedJobMixin<QGpgME::EncryptJob, std::tuple<GpgME::EncryptionResult, QByteArray, QString, GpgME::Error> >::slotFinished() () at /usr/lib64/libqgpgme.so.7 #13 0x00007ffff6bdbb61 in QObject::event(QEvent*) () at /usr/lib64/libQt5Core.so.5 #14 0x00007ffff77070cf in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib64/libQt5Widgets.so.5 #15 0x00007ffff6bafc3a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib64/libQt5Core.so.5 #16 0x00007ffff6bb2661 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib64/libQt5Core.so.5 #17 0x00007ffff6c079f3 in () at /usr/lib64/libQt5Core.so.5 #18 0x00007fffede0d2b7 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0 #19 0x00007fffede0d638 in () at /usr/lib64/libglib-2.0.so.0 #20 0x00007fffede0d6ef in g_main_context_iteration () at /usr/lib64/libglib-2.0.so.0 #21 0x00007ffff6c0707f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #22 0x00007ffff6bae5fb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib64/libQt5Core.so.5 #23 0x00007ffff6bb6860 in QCoreApplication::exec() () at /usr/lib64/libQt5Core.so.5 #24 0x0000555555558fc7 in () #25 0x00007ffff6579cca in __libc_start_main () at /lib64/libc.so.6 #26 0x000055555555961a in ()
Fixed in 5.16.1 released in Applications 20.12.1.