Bug 296634 - kgpg shows failure message in front of decryption/passphrase window, crashes
Summary: kgpg shows failure message in front of decryption/passphrase window, crashes
Status: RESOLVED FIXED
Alias: None
Product: kgpg
Classification: Applications
Component: general (show other bugs)
Version: 2.7.x
Platform: Debian stable Linux
: NOR crash
Target Milestone: ---
Assignee: Rolf Eike Beer
URL:
Keywords:
Depends on:
Blocks: 296872
  Show dependency treegraph
 
Reported: 2012-03-23 16:30 UTC by Andreas v. Heydwolff
Modified: 2015-01-08 21:50 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In: 4.8.2


Attachments
use QWeakPointer to track the process object (9.45 KB, patch)
2012-03-25 22:21 UTC, Rolf Eike Beer
Details
track object deletion while GnuPG transactions are running (1.18 KB, patch)
2012-03-27 08:07 UTC, Rolf Eike Beer
Details
track object deletion while GnuPG transactions are running (v2) (2.86 KB, patch)
2012-03-27 09:51 UTC, Rolf Eike Beer
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas v. Heydwolff 2012-03-23 16:30:37 UTC
Application: kgpg (2.7.60)
KDE Platform Version: 4.7.4 (4.7.4)
Qt Version: 4.7.4
Operating System: Linux 3.2.11-buche.1 x86_64
Distribution: Debian GNU/Linux 5.0.10 (lenny)

-- Information about the crash:
kgpg 4.8 was compiled from git master, running on 4.7.4 from Debian testing (wheezy), against libqt 4.7. The editor window opens as default. An encrypted message is being pasted into the window. Click on "Decrypt", both windows open: the one asking for m passphrase for decryption, and in the same instant a "decryption failed" message pops up in front of said decryption dialog window. I click away the message, enter my passphrase, hit OK and kgpg crashes.

The above information about my box running "Lenny" is wrong, it is Wheezy/Sid. Dunno where the Lenny info comes from.

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".
[KCrash Handler]
#6  0x0000000000497c65 in KLineBufferedProcess::readLineStandardOutput (this=0x3ff0000000000000, line=0x7fffd98ae610) at /usr/local/src/kgpg/klinebufferedprocess.cpp:90
#7  0x0000000000496bc1 in GPGProc::readln (this=0x3ff0000000000000, line=..., colons=true) at /usr/local/src/kgpg/gpgproc.cpp:194
#8  0x0000000000449013 in KGpgTransactionPrivate::slotReadReady (this=0x2ea1c30) at /usr/local/src/kgpg/transactions/kgpgtransaction.cpp:115
#9  0x000000000044aa37 in KGpgTransaction::qt_metacall (this=0x2d668a0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fffd98ae810) at /usr/local/src/kgpg/build/kgpgtransaction.moc:92
#10 0x000000000045d3ec in KGpgTextOrFileTransaction::qt_metacall (this=0x2d668a0, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fffd98ae810) at /usr/local/src/kgpg/build/kgpgtextorfiletransaction.moc:67
#11 0x0000000000456c90 in KGpgDecrypt::qt_metacall (this=0x2d668a0, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fffd98ae810) at /usr/local/src/kgpg/build/kgpgdecrypt.moc:64
#12 0x00007fd38beefeba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#13 0x00000000004977a1 in GPGProc::readReady (this=0x2d341c0) at /usr/local/src/kgpg/build/gpgproc.moc:92
#14 0x0000000000496b70 in GPGProc::received (this=0x2d341c0) at /usr/local/src/kgpg/gpgproc.cpp:183
#15 0x000000000049776f in GPGProc::qt_metacall (this=0x2d341c0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fffd98ae930) at /usr/local/src/kgpg/build/gpgproc.moc:81
#16 0x00007fd38beefeba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#17 0x0000000000497fad in KLineBufferedProcess::lineReadyStandardOutput (this=0x2d341c0) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:93
#18 0x0000000000497b88 in KLineBufferedProcessPrivate::_k_receivedStdout (this=0x2d35870) at /usr/local/src/kgpg/klinebufferedprocess.cpp:68
#19 0x0000000000497f69 in KLineBufferedProcess::qt_metacall (this=0x2d341c0, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fffd98aea90) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:81
#20 0x0000000000497706 in GPGProc::qt_metacall (this=0x2d341c0, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0x7fffd98aea90) at /usr/local/src/kgpg/build/gpgproc.moc:73
#21 0x00007fd38beefeba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#22 0x00007fd38be8151b in ?? () from /usr/lib/libQtCore.so.4
#23 0x00007fd38be821d9 in QProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#24 0x00007fd38c5b8668 in KProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdecore.so.5
#25 0x0000000000497f0a in KLineBufferedProcess::qt_metacall (this=0x2d341c0, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0x7fffd98aecf0) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:74
#26 0x0000000000497706 in GPGProc::qt_metacall (this=0x2d341c0, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0x7fffd98aecf0) at /usr/local/src/kgpg/build/gpgproc.moc:73
#27 0x00007fd38beefeba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#28 0x00007fd38bf3942e in QSocketNotifier::activated(int) () from /usr/lib/libQtCore.so.4
#29 0x00007fd38bef7b6b in QSocketNotifier::event(QEvent*) () from /usr/lib/libQtCore.so.4
#30 0x00007fd38cb43c64 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#31 0x00007fd38cb48af1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#32 0x00007fd38daccb26 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#33 0x00007fd38bedd28c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#34 0x00007fd38bf07557 in ?? () from /usr/lib/libQtCore.so.4
#35 0x00007fd3883c00cf in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007fd3883c08c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007fd3883c0a99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007fd38bf07e2f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#39 0x00007fd38cbe7eee in ?? () from /usr/lib/libQtGui.so.4
#40 0x00007fd38bedc492 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#41 0x00007fd38bedc68f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#42 0x00007fd38bee0837 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#43 0x000000000048f8a5 in main (argc=1, argv=0x7fffd98afa28) at /usr/local/src/kgpg/main.cpp:53

Reported using DrKonqi
Comment 1 Rolf Eike Beer 2012-03-23 16:48:19 UTC
Ok, this would mean the decryption object somehow decided that it can't continue, but the passprase window is still shown and writes data to the then deleted object.

Please enable transaction debugging:

cd build_dir
cmake -D KGPG_DEBUG_TRANSACTIONS=On . && make && ./kgpg

Then paste the debug ouput printed to console here so I can see what the GnuPG process writes and causes the operation to fail. You may of course strip any text of the encrypted message.
Comment 2 Andreas v. Heydwolff 2012-03-23 17:06:45 UTC
Hello Eike - while you were posting I wrote
-----------------------------------------------------------------------------------------------
The "Sorry KGpg" error message not only says "Decryption failed" but it has a "Details" element, and when I open it, it says:

[GNUPG:] ENC_TO B2830F08F68118AF 16 0
[GNUPG:] ENC_TO 4D9482F55DCF0DD1 16 0
[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0
-----------------------------------------------------------------------------------------------
Thanks anyway, and here is more news - calling kgpg from the CLI brings about this:
$ kgpg
kgpg(32489) GnupgBinary::setBinary: checking version of GnuPG executable "/usr/bin/gpg"
kgpg(32489) GnupgBinary::setBinary: version is "1.4.12" 66572
kgpg(32489) KStatusBar::changeItem: KStatusBar::changeItem: bad item id:  0

$ Enchant dict for "en_US" 0x17a5ab0 
kgpg(32489) Sonnet::Highlighter::slotRehighlight: Highlighter::slotRehighlight()
kgpg(32489) KGpgTransaction::start: KGpgDecrypt(0x1e1d6a0) ("/usr/bin/gpg", "--no-secmem-warning", "--no-tty", "--no-greeting", "--options", "/home/avh/.gnupg/gpg.conf", "--status-fd=1", "--decrypt", "--command-fd=0")
kgpg(32489) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1e1d6a0) "[GNUPG:] ENC_TO B2830F08F68118AF 16 0"
kgpg(32489) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1e1d6a0) "[GNUPG:] ENC_TO 4D9482F55DCF0DD1 16 0"
kgpg(32489) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1e1d6a0) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 Andreas von Heydwolff (Ordination) <office@sandpsych.at>"                                                                                                        
kgpg(32489) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1e1d6a0) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"                                                                                                                                       
kgpg(32489) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1e1d6a0) "[GNUPG:] GET_HIDDEN passphrase.enter"
KCrash: Application 'kgpg' crashing...                                                                                                   
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit                                                                   
sock_file=/home/avh/.kde/socket-buche/kdeinit4__12  

-----------------------------------------------------------------------------------------------
And Dr. Konqi says:

Application: KGpg (kgpg), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[KCrash Handler]
#6  0x0000000000497f8d in KLineBufferedProcess::readLineStandardOutput (this=0x3ff0000000000000, line=0x7fff31576140) at /usr/local/src/kgpg/klinebufferedprocess.cpp:90
#7  0x0000000000496ee9 in GPGProc::readln (this=0x3ff0000000000000, line=..., colons=true) at /usr/local/src/kgpg/gpgproc.cpp:194
#8  0x000000000044914e in KGpgTransactionPrivate::slotReadReady (this=0x2d2e7f0) at /usr/local/src/kgpg/transactions/kgpgtransaction.cpp:115
#9  0x000000000044ad0f in KGpgTransaction::qt_metacall (this=0x2d7c2c0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fff31576380) at /usr/local/src/kgpg/build/kgpgtransaction.moc:92
#10 0x000000000045d714 in KGpgTextOrFileTransaction::qt_metacall (this=0x2d7c2c0, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fff31576380) at /usr/local/src/kgpg/build/kgpgtextorfiletransaction.moc:67
#11 0x0000000000456fb8 in KGpgDecrypt::qt_metacall (this=0x2d7c2c0, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0x7fff31576380) at /usr/local/src/kgpg/build/kgpgdecrypt.moc:64
#12 0x00007f6b2e9d5eba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#13 0x0000000000497ac9 in GPGProc::readReady (this=0x2ef0f30) at /usr/local/src/kgpg/build/gpgproc.moc:92
#14 0x0000000000496e98 in GPGProc::received (this=0x2ef0f30) at /usr/local/src/kgpg/gpgproc.cpp:183
#15 0x0000000000497a97 in GPGProc::qt_metacall (this=0x2ef0f30, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fff315764a0) at /usr/local/src/kgpg/build/gpgproc.moc:81
#16 0x00007f6b2e9d5eba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#17 0x00000000004982d5 in KLineBufferedProcess::lineReadyStandardOutput (this=0x2ef0f30) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:93
#18 0x0000000000497eb0 in KLineBufferedProcessPrivate::_k_receivedStdout (this=0x2ed4000) at /usr/local/src/kgpg/klinebufferedprocess.cpp:68
#19 0x0000000000498291 in KLineBufferedProcess::qt_metacall (this=0x2ef0f30, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7fff31576600) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:81
#20 0x0000000000497a2e in GPGProc::qt_metacall (this=0x2ef0f30, _c=QMetaObject::InvokeMetaMethod, _id=27, _a=0x7fff31576600) at /usr/local/src/kgpg/build/gpgproc.moc:73
#21 0x00007f6b2e9d5eba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#22 0x00007f6b2e96751b in ?? () from /usr/lib/libQtCore.so.4
#23 0x00007f6b2e9681d9 in QProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#24 0x00007f6b2f09e668 in KProcess::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdecore.so.5
#25 0x0000000000498232 in KLineBufferedProcess::qt_metacall (this=0x2ef0f30, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0x7fff31576860) at /usr/local/src/kgpg/build/klinebufferedprocess.moc:74
#26 0x0000000000497a2e in GPGProc::qt_metacall (this=0x2ef0f30, _c=QMetaObject::InvokeMetaMethod, _id=17, _a=0x7fff31576860) at /usr/local/src/kgpg/build/gpgproc.moc:73
#27 0x00007f6b2e9d5eba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#28 0x00007f6b2ea1f42e in QSocketNotifier::activated(int) () from /usr/lib/libQtCore.so.4
#29 0x00007f6b2e9ddb6b in QSocketNotifier::event(QEvent*) () from /usr/lib/libQtCore.so.4
#30 0x00007f6b2f629c64 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#31 0x00007f6b2f62eaf1 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#32 0x00007f6b305b2b26 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#33 0x00007f6b2e9c328c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#34 0x00007f6b2e9ed557 in ?? () from /usr/lib/libQtCore.so.4
#35 0x00007f6b2aea60cf in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#36 0x00007f6b2aea68c8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#37 0x00007f6b2aea6a99 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#38 0x00007f6b2e9ede2f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#39 0x00007f6b2f6cdeee in ?? () from /usr/lib/libQtGui.so.4
#40 0x00007f6b2e9c2492 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#41 0x00007f6b2e9c268f in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#42 0x00007f6b2e9c6837 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#43 0x000000000048fbcd in main (argc=1, argv=0x7fff31577598) at /usr/local/src/kgpg/main.cpp:53
Comment 3 Rolf Eike Beer 2012-03-23 18:03:00 UTC
Please open the file transactions/kgpgtransaction.cpp and put some of these statements in there:

kDebug(2100) << __LINE__ << m_passphraseAction;

The interesting place is the block beginning in line 126 (... GET_HIDDEN passphrase.enter) and the function askPassphrase() beginning in line 448. In the latter function you must write d->m_passphraseAction instead.
Comment 4 Andreas v. Heydwolff 2012-03-23 18:21:25 UTC
Changes in transactions/kgpgtransaction.cpp:
## around line 128 ##
                        m_success = KGpgTransaction::TS_BAD_PASSPHRASE;
                } else if (line.startsWith(QLatin1String("[GNUPG:] GET_HIDDEN passphrase.enter"))) {
kDebug(2100) << __LINE__ << m_passphraseAction;
                        m_passphraseAction = m_parent->passphraseRequested();
                        switch (m_passphraseAction) {

## around line 449 ##
KGpgTransaction::askPassphrase(const QString &message)
{
kDebug(2100) << __LINE__ << d->m_passphraseAction;
        if (d->m_passphraseAction == PA_USER_ABORTED)
                return false;

---- Result ------------------------------------------------------------------------------------
$ Enchant dict for "en_US" 0x1322260 
kgpg(29740) Sonnet::Highlighter::slotRehighlight: Highlighter::slotRehighlight()
kgpg(29740) KGpgTransaction::start: KGpgDecrypt(0x1830820) ("/usr/bin/gpg", "--no-secmem-warning", "--no-tty", "--no-greeting", "--options", "/home/avh/.gnupg/gpg.conf", "--status-fd=1", "--decrypt", "--command-fd=0")
kgpg(29740) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1830820) "[GNUPG:] ENC_TO B2830F08F68118AF 16 0"
kgpg(29740) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1830820) "[GNUPG:] ENC_TO 4D9482F55DCF0DD1 16 0"
kgpg(29740) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1830820) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 [KEY INFO HERE]"
kgpg(29740) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1830820) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"
kgpg(29740) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1830820) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(29740) KGpgTransactionPrivate::slotReadReady: 127 0
kgpg(29740) KGpgTransaction::askPassphrase: 452 0
KCrash: Application 'kgpg' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/avh/.kde/socket-buche/kdeinit4__12
Comment 5 Rolf Eike Beer 2012-03-23 20:40:23 UTC
Ok, that looks pretty ok. Please move the first one 1 line down, the second one can be removed.
Comment 6 Andreas v. Heydwolff 2012-03-23 20:49:34 UTC
(In reply to comment #5)
> Ok, that looks pretty ok. Please move the first one 1 line down, the second
> one can be removed.

---- Result (snippet) ----
kgpg(20518) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x1cb5200) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(20518) KGpgTransactionPrivate::slotReadReady: 128 1
KCrash: Application 'kgpg' crashing...
Comment 7 Rolf Eike Beer 2012-03-25 22:20:56 UTC
Ok, I think that there are 2 things going wrong here. One is that the transactions fails, likely because the GnuPG process closes. Even if this is the root cause of all this, it will not get fixed right now because I have no idea what's going on there.

The other problem (and the one that leads to the crash) is that the objects get deleted while still in use. Please test if the attached patch make the crash go away. It will still tell you that the decryption fails, but it should not crash anymore.
Comment 8 Rolf Eike Beer 2012-03-25 22:21:55 UTC
Created attachment 69894 [details]
use QWeakPointer to track the process object
Comment 9 Rolf Eike Beer 2012-03-27 08:07:17 UTC
Created attachment 69927 [details]
track object deletion while GnuPG transactions are running
Comment 10 Andreas v. Heydwolff 2012-03-27 08:15:25 UTC
Result is now:
kgpg(1042) KGpgTransaction::start: KGpgDecrypt(0x135c5b0) ("/usr/bin/gpg", "--no-secmem-warning", "--no-tty", "--no-greeting", "--options", "/home/avh/.gnupg/gpg.conf", "--status-fd=1", "--decrypt", "--command-fd=0")
kgpg(1042) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x135c5b0) "[GNUPG:] ENC_TO B2830F08F68118AF 16 0"
kgpg(1042) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x135c5b0) "[GNUPG:] ENC_TO 4D9482F55DCF0DD1 16 0"
kgpg(1042) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x135c5b0) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 [Key Name and ID here]"
kgpg(1042) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x135c5b0) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"
kgpg(1042) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x135c5b0) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(1042) KGpgTransactionPrivate::slotReadReady: 130 1
Comment 11 Rolf Eike Beer 2012-03-27 09:19:06 UTC
Sure, the kDebug() has moved 2 lines down. But is the crash gone?
Comment 12 Andreas v. Heydwolff 2012-03-27 09:21:47 UTC
Sorry for not mentioning it - yes, I click the error message away, enter the passphrase, nothing happens but alas, the window stays in place.
Comment 13 Rolf Eike Beer 2012-03-27 09:51:26 UTC
Created attachment 69930 [details]
track object deletion while GnuPG transactions are running (v2)

Thanks for your work. Please get rid of the previous patch and try this one instead. This should also immediately close the password dialog once you get the failure message.
Comment 14 Andreas v. Heydwolff 2012-03-27 11:02:01 UTC
Thanks. This is now the output after applying the latest patch. When I clicked "Decrypt" (with a sample encrypted message in the editor window) for the first time it seemed that only the error message appeared but maybe I only missed what I saw the second time I clicked "Decrypt": Now both windows appeared: The error message and behind it the Enter Passphrase dialog. When I clicked OK in the error message window on top of the passphrase dialog window both windows disappear and the editor window does not crash but remains open. Here goes:

kgpg(14903) Sonnet::Highlighter::slotRehighlight: Highlighter::slotRehighlight()
kgpg(14903) KGpgTransaction::start: KGpgDecrypt(0x7ffa8c189330) ("/usr/bin/gpg", "--no-secmem-warning", "--no-tty", "--no-greeting", "--options", "/home/avh/.gnupg/gpg.conf", "--status-fd=1", "--decrypt", "--command-fd=0")
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] ENC_TO B2830F08F68118AF 16 0"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] ENC_TO 4D9482F55DCF0DD1 16 0"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 [KEY INFO HERE]"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GOT_IT"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] BAD_PASSPHRASE 4D9482F55DCF0DD1"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 Andreas von Heydwolff (Ordination) <office@sandpsych.at>"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GOT_IT"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] BAD_PASSPHRASE 4D9482F55DCF0DD1" <-- of course, I did not enter anything!
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] USERID_HINT 4D9482F55DCF0DD1 [KEY INFO]"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] NEED_PASSPHRASE 4D9482F55DCF0DD1 72B1B25BCCAD0A4B 16 0"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GET_HIDDEN passphrase.enter"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] GOT_IT"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] BAD_PASSPHRASE 4D9482F55DCF0DD1"  <-- same thing again, I guess
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] ERROR pkdecrypt_failed 11"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] NO_SECKEY B2830F08F68118AF"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] BEGIN_DECRYPTION"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] DECRYPTION_FAILED"
kgpg(14903) KGpgTransactionPrivate::slotReadReady: KGpgDecrypt(0x7ffa8c189330) "[GNUPG:] END_DECRYPTION"
Comment 15 Rolf Eike Beer 2012-03-27 12:31:39 UTC
Git commit 2de8490d527d47d4fa4d8e643aefba5e842d2826 by Rolf Eike Beer.
Committed on 27/03/2012 at 10:01.
Pushed by dakon into branch 'KDE/4.8'.

track object deletion while GnuPG transactions are running

The process may quit and cause the object to get deleted while we are e.g.
waiting for a password input. Check if the object is still alive before reading
the next input.

If we detect the process to go away also close the password dialog as it can't
do anything useful then anymore.
FIXED-IN:4.8.2

M  +4    -0    kgpginterface.cpp
M  +20   -7    transactions/kgpgtransaction.cpp

http://commits.kde.org/kgpg/2de8490d527d47d4fa4d8e643aefba5e842d2826