Bug 208162 - Kgpg crash when canceling the opening of a encrypted file
Summary: Kgpg crash when canceling the opening of a encrypted file
Status: RESOLVED FIXED
Alias: None
Product: kgpg
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Unlisted Binaries Linux
: NOR normal
Target Milestone: ---
Assignee: Rolf Eike Beer
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-22 11:26 UTC by François L.
Modified: 2012-03-07 19:30 UTC (History)
0 users

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 François L. 2009-09-22 11:26:52 UTC
Application that crashed: kgpg
Version of the application: 2.2.1
KDE Version: 4.3.1 (KDE 4.3.1)
Qt Version: 4.5.2
Operating System: Linux 2.6.30-ARCH i686
Distribution: "(none)"

 -- Backtrace:
Application: KGpg (kgpg), signal: Segmentation fault
[KCrash Handler]
#6  0x080dcaf7 in KgpgLibrary::processDecOver (this=0x8c6e3b8, ret=2, iface=0x8d3f690) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.cpp:173
#7  0x080de1bd in KgpgLibrary::qt_metacall (this=0x8c6e3b8, _c=QMetaObject::InvokeMetaMethod, _id=16, _a=0xbfc038f4) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.moc:110
#8  0xb69d99ac in QMetaObject::activate (sender=0x8d3f690, from_signal_index=<value optimized out>, to_signal_index=17, argv=0x8da89a8) at kernel/qobject.cpp:3112
#9  0xb69da5e2 in QMetaObject::activate (sender=0x8d3f690, m=0x80ff6ec, local_signal_index=13, argv=0xbfc038f4) at kernel/qobject.cpp:3186
#10 0x080638eb in KGpgTextInterface::decryptFileFinished (this=0x8d3f690, _t1=2, _t2=0x8d3f690) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/moc_kgpgtextinterface.cpp:309
#11 0x080d3a9d in KGpgTextInterface::decryptFileFin (this=0x8d3f690, res=0, status=QProcess::CrashExit) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpgtextinterface.cpp:547
#12 0x080654a2 in KGpgTextInterface::qt_metacall (this=0x8d3f690, _c=QMetaObject::InvokeMetaMethod, _id=49, _a=0xbfc03ad4)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/moc_kgpgtextinterface.cpp:205
#13 0xb69d99ac in QMetaObject::activate (sender=0x8c82aa0, from_signal_index=<value optimized out>, to_signal_index=10, argv=0x8da89a8) at kernel/qobject.cpp:3112
#14 0xb69da5e2 in QMetaObject::activate (sender=0x8c82aa0, m=0xb6ab37ec, local_signal_index=2, argv=0xbfc03ad4) at kernel/qobject.cpp:3186
#15 0xb6961ff9 in QProcess::finished (this=0x8c82aa0, _t1=0, _t2=QProcess::CrashExit) at .moc/release-shared/moc_qprocess.cpp:136
#16 0xb6967a5e in QProcessPrivate::_q_processDied (this=0x8c6e4e8) at io/qprocess.cpp:718
#17 0xb6967b2e in QProcess::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=13, _a=0xbfc03ce8) at .moc/release-shared/moc_qprocess.cpp:109
#18 0xb6beedda in KProcess::qt_metacall () from /usr/lib/libkdecore.so.5
#19 0x080d662c in KLineBufferedProcess::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfc03ce8)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/klinebufferedprocess.moc:68
#20 0x080d57ef in GPGProc::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0xbfc03ce8) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/gpgproc.moc:68
#21 0xb69d99ac in QMetaObject::activate (sender=0x8db1c88, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x8da89a8) at kernel/qobject.cpp:3112
#22 0xb69da5e2 in QMetaObject::activate (sender=0x8db1c88, m=0xb6ab5210, local_signal_index=0, argv=0xbfc03ce8) at kernel/qobject.cpp:3186
#23 0xb6a13923 in QSocketNotifier::activated (this=0x8db1c88, _t1=15) at .moc/release-shared/moc_qsocketnotifier.cpp:83
#24 0xb69de337 in QSocketNotifier::event (this=0x8db1c88, e=0xbfc040a4) at kernel/qsocketnotifier.cpp:316
#25 0xb6ec0964 in QApplicationPrivate::notify_helper (this=0x8c01548, receiver=0x8db1c88, e=0xbfc040a4) at kernel/qapplication.cpp:4056
#26 0xb6ec804c in QApplication::notify (this=0x8bf3f90, receiver=0x8db1c88, e=0xbfc040a4) at kernel/qapplication.cpp:3603
#27 0xb790446a in KApplication::notify () from /usr/lib/libkdeui.so.5
#28 0xb69c3fcb in QCoreApplication::notifyInternal (this=0x8bf3f90, receiver=0x8db1c88, event=0xbfc040a4) at kernel/qcoreapplication.cpp:610
#29 0xb69ee96a in socketNotifierSourceDispatch (source=0x8bfad10) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#30 0xb5fe4d98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0xb5fe83e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#32 0xb5fe8513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0xb69ee6cc in QEventDispatcherGlib::processEvents (this=0x8bf6520, flags={i = 100}) at kernel/qeventdispatcher_glib.cpp:327
#34 0xb6f5e695 in QGuiEventDispatcherGlib::processEvents (this=0x8bf6520, flags={i = 100}) at kernel/qguieventdispatcher_glib.cpp:202
#35 0xb69c2579 in QEventLoop::processEvents (this=0xbfc04340, flags=) at kernel/qeventloop.cpp:149
#36 0xb69c29ca in QEventLoop::exec (this=0xbfc04340, flags={i = 64}) at kernel/qeventloop.cpp:201
#37 0xb73a3233 in QDialog::exec (this=0x8e2e618) at dialogs/qdialog.cpp:498
#38 0xb787e9d4 in KMessageBox::createKMessageBox () from /usr/lib/libkdeui.so.5
#39 0xb787fe0d in KMessageBox::createKMessageBox () from /usr/lib/libkdeui.so.5
#40 0xb7880c11 in KMessageBox::errorListWId () from /usr/lib/libkdeui.so.5
#41 0xb7880d3f in KMessageBox::errorList () from /usr/lib/libkdeui.so.5
#42 0x080f3162 in KGpgExternalActions::decryptNextFile (this=0x8d73a88, lib=0x8c6e3b8, failed=@0xbfc048c4) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpgexternalactions.cpp:363
#43 0x08064595 in KGpgExternalActions::qt_metacall (this=0x8d73a88, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0xbfc04884)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/moc_kgpgexternalactions.cpp:131
#44 0xb69d99ac in QMetaObject::activate (sender=0x8c6e3b8, from_signal_index=<value optimized out>, to_signal_index=5, argv=0x8da89a8) at kernel/qobject.cpp:3112
#45 0xb69da5e2 in QMetaObject::activate (sender=0x8c6e3b8, m=0x811231c, local_signal_index=1, argv=0xbfc04884) at kernel/qobject.cpp:3186
#46 0x080dc84b in KgpgLibrary::decryptionOver (this=0x8c6e3b8, _t1=0x8c6e3b8, _t2={<QUrl> = {d = 0x8cfb750}, d = 0x0}) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.moc:130
#47 0x080dcb27 in KgpgLibrary::processDecOver (this=0x8c6e3b8, ret=1, iface=0x8d3f690) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.cpp:178
#48 0x080de1bd in KgpgLibrary::qt_metacall (this=0x8c6e3b8, _c=QMetaObject::InvokeMetaMethod, _id=16, _a=0xbfc04a14) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.moc:110
#49 0xb69d99ac in QMetaObject::activate (sender=0x8d3f690, from_signal_index=<value optimized out>, to_signal_index=17, argv=0x8da89a8) at kernel/qobject.cpp:3112
#50 0xb69da5e2 in QMetaObject::activate (sender=0x8d3f690, m=0x80ff6ec, local_signal_index=13, argv=0xbfc04a14) at kernel/qobject.cpp:3186
#51 0x080638eb in KGpgTextInterface::decryptFileFinished (this=0x8d3f690, _t1=1, _t2=0x8d3f690) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/moc_kgpgtextinterface.cpp:309
#52 0x080d447c in KGpgTextInterface::decryptFileProcess (this=0x8d3f690) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpgtextinterface.cpp:528
#53 0x0806547d in KGpgTextInterface::qt_metacall (this=0x8d3f690, _c=QMetaObject::InvokeMetaMethod, _id=48, _a=0xbfc04bac)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/moc_kgpgtextinterface.cpp:204
#54 0xb69d99ac in QMetaObject::activate (sender=0x8c82aa0, from_signal_index=<value optimized out>, to_signal_index=25, argv=0x8da89a8) at kernel/qobject.cpp:3112
#55 0xb69da5e2 in QMetaObject::activate (sender=0x8c82aa0, m=0x8110920, local_signal_index=0, argv=0x0) at kernel/qobject.cpp:3186
#56 0x080d61c9 in KLineBufferedProcess::lineReadyStandardOutput (this=0x8c82aa0) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/klinebufferedprocess.moc:87
#57 0x080d64d8 in KLineBufferedProcessPrivate::_k_receivedStdout (this=0x8cba240) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/klinebufferedprocess.cpp:62
#58 0x080d6686 in KLineBufferedProcess::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0xbfc04d2c)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/klinebufferedprocess.moc:75
#59 0x080d57ef in GPGProc::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0xbfc04d2c) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/gpgproc.moc:68
#60 0xb69d99ac in QMetaObject::activate (sender=0x8c82aa0, from_signal_index=<value optimized out>, to_signal_index=13, argv=0x8da89a8) at kernel/qobject.cpp:3112
#61 0xb69da5e2 in QMetaObject::activate (sender=0x8c82aa0, m=0xb6ab37ec, local_signal_index=5, argv=0x0) at kernel/qobject.cpp:3186
#62 0xb6961ec7 in QProcess::readyReadStandardOutput (this=0x8c82aa0) at .moc/release-shared/moc_qprocess.cpp:156
#63 0xb69649fa in QProcessPrivate::_q_canReadStandardOutput (this=0x8c6e4e8) at io/qprocess.cpp:564
#64 0xb6967c26 in QProcess::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=9, _a=0xbfc04f98) at .moc/release-shared/moc_qprocess.cpp:101
#65 0xb6beedda in KProcess::qt_metacall () from /usr/lib/libkdecore.so.5
#66 0x080d662c in KLineBufferedProcess::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0xbfc04f98)
    at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/klinebufferedprocess.moc:68
#67 0x080d57ef in GPGProc::qt_metacall (this=0x8c82aa0, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0xbfc04f98) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/gpgproc.moc:68
#68 0xb69d99ac in QMetaObject::activate (sender=0x8db1e28, from_signal_index=<value optimized out>, to_signal_index=4, argv=0x8da89a8) at kernel/qobject.cpp:3112
#69 0xb69da5e2 in QMetaObject::activate (sender=0x8db1e28, m=0xb6ab5210, local_signal_index=0, argv=0xbfc04f98) at kernel/qobject.cpp:3186
#70 0xb6a13923 in QSocketNotifier::activated (this=0x8db1e28, _t1=21) at .moc/release-shared/moc_qsocketnotifier.cpp:83
#71 0xb69de337 in QSocketNotifier::event (this=0x8db1e28, e=0xbfc05354) at kernel/qsocketnotifier.cpp:316
#72 0xb6ec0964 in QApplicationPrivate::notify_helper (this=0x8c01548, receiver=0x8db1e28, e=0xbfc05354) at kernel/qapplication.cpp:4056
#73 0xb6ec804c in QApplication::notify (this=0x8bf3f90, receiver=0x8db1e28, e=0xbfc05354) at kernel/qapplication.cpp:3603
#74 0xb790446a in KApplication::notify () from /usr/lib/libkdeui.so.5
#75 0xb69c3fcb in QCoreApplication::notifyInternal (this=0x8bf3f90, receiver=0x8db1e28, event=0xbfc05354) at kernel/qcoreapplication.cpp:610
#76 0xb69ee96a in socketNotifierSourceDispatch (source=0x8bfad10) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:213
#77 0xb5fe4d98 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#78 0xb5fe83e0 in g_main_context_iterate () from /usr/lib/libglib-2.0.so.0
#79 0xb5fe8513 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#80 0xb69ee6cc in QEventDispatcherGlib::processEvents (this=0x8bf6520, flags={i = 36}) at kernel/qeventdispatcher_glib.cpp:327
#81 0xb6f5e695 in QGuiEventDispatcherGlib::processEvents (this=0x8bf6520, flags={i = 36}) at kernel/qguieventdispatcher_glib.cpp:202
#82 0xb69c2579 in QEventLoop::processEvents (this=0xbfc055f4, flags=) at kernel/qeventloop.cpp:149
#83 0xb69c29ca in QEventLoop::exec (this=0xbfc055f4, flags={i = 0}) at kernel/qeventloop.cpp:201
#84 0xb69c4e3f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888
#85 0xb6ec07e7 in QApplication::exec () at kernel/qapplication.cpp:3525
#86 0x080bf806 in main (argc=3, argv=0xbfc05824) at /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/main.cpp:57

Reported using DrKonqi
Comment 1 Rolf Eike Beer 2009-09-23 22:02:50 UTC
SVN commit 1027307 by dakon:

make sure that pointer is never stale

CCBUG:208162


 M  +2 -0      kgpglibrary.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1027307
Comment 2 Rolf Eike Beer 2009-09-23 22:03:07 UTC
>  -- Backtrace:
> Application: KGpg (kgpg), signal: Segmentation fault
> [KCrash Handler]
> #6  0x080dcaf7 in KgpgLibrary::processDecOver (this=0x8c6e3b8, ret=2,
> iface=0x8d3f690) at
> /home/jan/kdemod/core/kdeutils/src/kdeutils-4.3.1/kgpg/kgpglibrary.cpp:173

This could be a double free, although I have no idea how you might get there. 
Anyway, I'll just zero that this everywhere where it's surely no longer valid. 
Could you test?
Comment 3 François L. 2009-09-24 13:06:21 UTC
It seems the crash occurs only at the first file I try to open after login in kde, when I cancel the opening even without an attempt to enter the valid passphrase. I tried with and without kgpg launching automatically at the start of the session.
If I try to open a second encrypted file after the crash, everything is working fine.

By testing you mean patching with the changes of the revision 1027307 and compiling kgpg? I can give it a try but I never compiled a kde app yet.
Comment 4 Rolf Eike Beer 2009-09-24 15:46:28 UTC
Yes, that patch. A rough example on how to do it is here: http://der-dakon.net/blog/KDE/building-kdeutils.html

The path you need to check out is svn://anonsvn.kde.org/home/kde/branches/KDE/4.3/kdeutils/
Comment 5 François L. 2009-09-24 17:20:13 UTC
Okay, tested and it seems to resolve the problem. Thanks !

However I don't know if it's a side effect of the fix but now when cancelling the opening of a file, the error window (labeled something like "Failed to open the encrypted file" followed by the filename(s)) pop up twice now. Should I open another bug report about that ?
Comment 6 Rolf Eike Beer 2009-09-24 22:57:43 UTC
Let me have a look at this first.
Comment 7 Rolf Eike Beer 2009-09-26 11:40:34 UTC
> However I don't know if it's a side effect of the fix but now when
>  cancelling the opening of a file, the error window (labeled something like
>  "Failed to open the encrypted file" followed by the filename(s)) pop up
>  twice now. Should I open another bug report about that ?

It's basically the same problem: for whatever reason the function that shows 
this message and that deletes the object gets called twice. So for now I only 
cured one symptom but still have no clue about the real disease.
Comment 8 Rolf Eike Beer 2009-10-03 13:46:49 UTC
Lowering priority as it doesn't crash anymore.
Comment 9 Rolf Eike Beer 2011-02-22 21:25:43 UTC
This stuff has been reworked. Does this still happen?
Comment 10 François L. 2011-02-23 10:55:31 UTC
I won't be able to test for some time but as soon as I can I will update the report.
Comment 11 Rolf Eike Beer 2011-11-20 20:34:18 UTC
Please report back if there is any news on this.
Comment 12 Rolf Eike Beer 2012-03-07 19:30:37 UTC
Seems fixed.