Bug 453328 - Null pointer dereference upon quit
Summary: Null pointer dereference upon quit
Status: REPORTED
Alias: None
Product: kleopatra
Classification: Applications
Component: general (show other bugs)
Version: 3.1.21.220400
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Andre Heinecke
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-05-03 06:56 UTC by Christopher Yeleighton
Modified: 2022-05-03 06:56 UTC (History)
2 users (show)

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 Christopher Yeleighton 2022-05-03 06:56:56 UTC
SUMMARY
Kleopatra crashed when told to quit by Plasma.

STEPS TO REPRODUCE
1. Tell Plasma to shut down!

OBSERVED RESULT
Application: Kleopatra (kleopatra), signal: Aborted
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
__futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x55cf83b010e0) at futex-internal.c:57
57	    return INTERNAL_SYSCALL_CANCEL (futex_time64, futex_word, op, expected,
__preamble__
Thread 7 (Thread 0x7f2a6913f640 (LWP 2001) "QThread"):
#0  g_mutex_unlock (mutex=0x7f2a60000c30) at ../glib/gthread-posix.c:1528
#1  0x00007f2a8672740c in g_main_context_iterate (context=context@entry=0x7f2a60000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4213
#2  0x00007f2a8672756f in g_main_context_iteration (context=0x7f2a60000c30, may_block=1) at ../glib/gmain.c:4276
#3  0x00007f2a882ae326 in QEventDispatcherGlib::processEvents (this=0x7f2a60000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f2a8825555b in QEventLoop::exec (this=this@entry=0x7f2a6913eb80, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#5  0x00007f2a88070cce in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f2a88071e3f in QThreadPrivate::start (arg=0x55cf83b073c8) at thread/qthread_unix.cpp:331
#7  0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#8  0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
[KCrash Handler]
#6  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
#7  0x00007f2a87ba71e3 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#8  0x00007f2a87b57306 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#9  0x00007f2a87b40813 in __GI_abort () at abort.c:79
#10 0x00007f2a87dfaad5 in __gnu_cxx::__verbose_terminate_handler () at ../../../../libstdc++-v3/libsupc++/vterminate.cc:95
#11 0x00007f2a87e05fcc in __cxxabiv1::__terminate (handler=<optimized out>) at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:48
#12 0x00007f2a87e06037 in std::terminate () at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:58
#13 0x00007f2a87e058ec in __cxxabiv1::__gxx_personality_v0 (version=<optimized out>, actions=10, exception_class=0, ue_header=<optimized out>, context=0x7f2a6993f930) at ../../../../libstdc++-v3/libsupc++/eh_personality.cc:673
#14 0x00007f2a87d47de6 in _Unwind_ForcedUnwind_Phase2 (exc=0x7f2a69940cb0, context=0x7f2a6993f930, frames_p=0x7f2a6993f838) at ../../../libgcc/unwind.inc:183
#15 0x00007f2a87d484e0 in _Unwind_ForcedUnwind (exc=0x7f2a69940cb0, stop=stop@entry=0x7f2a87badf7e <unwind_stop>, stop_argument=<optimized out>) at ../../../libgcc/unwind.inc:218
#16 0x00007f2a87bae126 in __GI___pthread_unwind (buf=<optimized out>) at unwind.c:130
#17 0x00007f2a87ba1191 in __do_cancel () at ../sysdeps/nptl/pthreadP.h:280
#18 __GI___pthread_enable_asynccancel () at cancellation.c:45
#19 0x00007f2a87c1dacd in __GI___close (fd=11) at ../sysdeps/unix/sysv/linux/close.c:27
#20 0x00007f2a86775aeb in g_wakeup_free (wakeup=0x7f2a740039c0) at ../glib/gwakeup.c:266
#21 0x00007f2a867254f2 in g_main_context_unref (context=0x7f2a5c000c30) at ../glib/gmain.c:636
#22 0x00007f2a882ae9da in QEventDispatcherGlib::~QEventDispatcherGlib (this=0x7f2a5c000b70, __in_chrg=<optimized out>) at kernel/qeventdispatcher_glib.cpp:400
#23 0x00007f2a882aea39 in QEventDispatcherGlib::~QEventDispatcherGlib (this=0x7f2a5c000b70, __in_chrg=<optimized out>) at kernel/qeventdispatcher_glib.cpp:402
#24 0x00007f2a8807157c in QThreadPrivate::finish (arg=<optimized out>) at thread/qthread_unix.cpp:380
#25 0x00007f2a88071e47 in __pthread_cleanup_class::~__pthread_cleanup_class (this=<synthetic pointer>, __in_chrg=<optimized out>) at /usr/include/pthread.h:578
#26 QThreadPrivate::start (arg=0x7f2a740069e0) at thread/qthread_unix.cpp:350
#27 0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#28 0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 5 (Thread 0x7f2a78bdd640 (LWP 1899) "kleopat:disk$0"):
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55cf83e10b68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f2a87ba197f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55cf83e10b68, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f2a87ba45b0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55cf83e10b18, cond=0x55cf83e10b40) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55cf83e10b40, mutex=0x55cf83e10b18) at pthread_cond_wait.c:618
#5  0x00007f2a79084e3b in cnd_wait (mtx=0x55cf83e10b18, cond=0x55cf83e10b40) at ../include/c11/threads_posix.h:155
#6  util_queue_thread_func (input=input@entry=0x55cf83f9cde0) at ../src/util/u_queue.c:294
#7  0x00007f2a7907ef97 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
#8  0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#9  0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 4 (Thread 0x7f2a7b249640 (LWP 1898) "kleopatra:rcs0"):
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55cf841a7ad0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f2a87ba197f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55cf841a7ad0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f2a87ba45b0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55cf841a7a80, cond=0x55cf841a7aa8) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55cf841a7aa8, mutex=0x55cf841a7a80) at pthread_cond_wait.c:618
#5  0x00007f2a79084e3b in cnd_wait (mtx=0x55cf841a7a80, cond=0x55cf841a7aa8) at ../include/c11/threads_posix.h:155
#6  util_queue_thread_func (input=input@entry=0x55cf83f9c520) at ../src/util/u_queue.c:294
#7  0x00007f2a7907ef97 in impl_thrd_routine (p=<optimized out>) at ../include/c11/threads_posix.h:87
#8  0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#9  0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 3 (Thread 0x7f2a81bf9640 (LWP 1724) "QDBusConnection"):
#1  0x00007f2a8672744e in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x7f2a740029e0, timeout=<optimized out>, context=0x7f2a74000c30) at ../glib/gmain.c:4516
#2  g_main_context_iterate (context=context@entry=0x7f2a74000c30, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4206
#3  0x00007f2a8672756f in g_main_context_iteration (context=0x7f2a74000c30, may_block=1) at ../glib/gmain.c:4276
#4  0x00007f2a882ae326 in QEventDispatcherGlib::processEvents (this=0x7f2a74000b70, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#5  0x00007f2a8825555b in QEventLoop::exec (this=this@entry=0x7f2a81bf8b50, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#6  0x00007f2a88070cce in QThread::exec (this=this@entry=0x7f2a894e2060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#7  0x00007f2a8946a297 in QDBusConnectionManager::run (this=0x7f2a894e2060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:179
#8  0x00007f2a88071e3f in QThreadPrivate::start (arg=0x7f2a894e2060 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:331
#9  0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#10 0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 2 (Thread 0x7f2a83555640 (LWP 1701) "QXcbEventQueue"):
#1  0x00007f2a8715d892 in poll (__timeout=-1, __nfds=1, __fds=0x7f2a83554a88) at /usr/include/bits/poll2.h:48
#2  _xcb_conn_wait (c=0x55cf83a01160, vector=0x0, count=0x0, cond=<optimized out>) at /usr/src/debug/libxcb-1.14-1.8.x86_64/src/xcb_conn.c:480
#3  0x00007f2a8715f2ac in _xcb_conn_wait (count=0x0, vector=0x0, cond=0x55cf83a011a0, c=0x55cf83a01160) at /usr/src/debug/libxcb-1.14-1.8.x86_64/src/xcb_conn.c:446
#4  xcb_wait_for_event (c=0x55cf83a01160) at /usr/src/debug/libxcb-1.14-1.8.x86_64/src/xcb_in.c:697
#5  0x00007f2a8369be50 in QXcbEventQueue::run (this=0x55cf839f2910) at qxcbeventqueue.cpp:228
#6  0x00007f2a88071e3f in QThreadPrivate::start (arg=0x55cf839f2910) at thread/qthread_unix.cpp:331
#7  0x00007f2a87ba52ba in start_thread (arg=<optimized out>) at pthread_create.c:442
#8  0x00007f2a87c2f460 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
Thread 1 (Thread 0x7f2a85770980 (LWP 1687) "kleopatra"):
#1  __futex_abstimed_wait_common (futex_word=futex_word@entry=0x55cf83b010e0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0, cancel=cancel@entry=true) at futex-internal.c:87
#2  0x00007f2a87ba197f in __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x55cf83b010e0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at futex-internal.c:139
#3  0x00007f2a87ba45b0 in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55cf83b01090, cond=0x55cf83b010b8) at pthread_cond_wait.c:503
#4  ___pthread_cond_wait (cond=0x55cf83b010b8, mutex=0x55cf83b01090) at pthread_cond_wait.c:618
#5  0x00007f2a88077cbb in QWaitConditionPrivate::wait (deadline=..., deadline=..., this=0x55cf83b01090) at thread/qwaitcondition_unix.cpp:146
#6  QWaitCondition::wait (this=this@entry=0x55cf83afc138, mutex=mutex@entry=0x55cf83afc118, deadline=...) at thread/qwaitcondition_unix.cpp:225
#7  0x00007f2a88071b49 in QThread::wait (this=this@entry=0x7f2a740069e0, deadline=...) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:275
#8  0x000055cf8384c234 in Kleo::SmartCard::ReaderStatus::Private::~Private (this=<optimized out>, this=<optimized out>) at /usr/include/qt5/QtCore/qdeadlinetimer.h:68
#9  0x000055cf8384c276 in Kleo::SmartCard::ReaderStatus::Private::~Private (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/smartcard/readerstatus.cpp:896
#10 std::_Sp_counted_ptr<Kleo::SmartCard::ReaderStatus::Private*, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:348
#11 0x000055cf836f4faa in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x55cf83b07a30) at /usr/include/c++/11/bits/shared_ptr_base.h:168
#12 0x000055cf8385e6fb in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:705
#13 std::__shared_ptr<Kleo::SmartCard::ReaderStatus::Private, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr_base.h:1154
#14 std::shared_ptr<Kleo::SmartCard::ReaderStatus::Private>::~shared_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11/bits/shared_ptr.h:122
#15 Kleo::SmartCard::ReaderStatus::~ReaderStatus (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/smartcard/readerstatus.cpp:930
#16 KleopatraApplication::Private::~Private (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/kleopatraapplication.cpp:105
#17 kdtools::pimpl_ptr<KleopatraApplication::Private>::~pimpl_ptr (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/utils/pimpl_ptr.h:27
#18 KleopatraApplication::~KleopatraApplication (this=<optimized out>, this=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/kleopatraapplication.cpp:255
#19 0x000055cf836eb027 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/kleopatra-22.04.0-1.1.x86_64/src/main.cpp:272

EXPECTED RESULT


SOFTWARE/OS VERSIONS
Windows: 
macOS: 
Linux/KDE Plasma: 
(available in About System)
KDE Plasma Version: 
KDE Frameworks Version: 
Qt Version: 

ADDITIONAL INFORMATION