[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#528051: marked as done (Wrong passphrase typed into ksshaskpass deadlocks ssh-agent)



Your message dated Thu, 26 Feb 2015 21:08:20 +0100
with message-id <9259755.Cqu3iGo0GF@adrien-portable2>
and subject line Wrong passphrase typed into ksshaskpass deadlocks ssh-agent
has caused the Debian Bug report #528051,
regarding Wrong passphrase typed into ksshaskpass deadlocks ssh-agent
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
528051: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=528051
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: ksshaskpass
Version: 0.5.1-1
Severity: important
Tags: patch,experimental

Hello,
 There is a nasty bug in ksshaskpass: when a wrong
 passphrase typed into ksshaskpass and if it is directed to save that passphrase
 into Kwallet, the ssh-agent deadlocks. In fact, ksshaskpass returns the
 incorrect passphrase saved over and over causing ssh-agent to loop
 every it is asked for the passphrase after then.
 The attached patch solves this issue by prompting the user for the
 passphrase when the prompt string begins with "Bad passphrase, try
 again for". As this my very first patch written in C++, please review
 it carefully before using it.
 Moreover, this patch removes also spaces at the end of some lines and
 changes "Please enter password" to "Please enter passphrase" which, IMO
 is more suitable in ssh world.


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (990, 'unstable'), (500, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.28-1-amd64 (SMP w/2 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages ksshaskpass depends on:
ii  kdebase-runtime             4:4.2.2-1    runtime components from the offici
ii  kdelibs5                    4:4.2.2-2    core libraries for all KDE 4 appli
ii  libc6                       2.9-12       GNU C Library: Shared libraries
ii  libgcc1                     1:4.4.0-4    GCC support library
ii  libqt4-dbus                 4.5.1-2      Qt 4 D-Bus module
ii  libqt4-svg                  4.5.1-2      Qt 4 SVG module
ii  libqtcore4                  4.5.1-2      Qt 4 core module
ii  libqtgui4                   4.5.1-2      Qt 4 GUI module
ii  libstdc++6                  4.4.0-4      The GNU Standard C++ Library v3
ii  openssh-client              1:5.1p1-5+b1 secure shell client, an rlogin/rsh

Versions of packages ksshaskpass recommends:
ii  kwalletmanager                4:4.2.2-1  secure password wallet manager for

ksshaskpass suggests no packages.

-- no debconf information
--- main.cpp	2008-11-25 22:46:22.000000000 +0100
+++ main.cpp.patched	2009-05-10 15:49:04.000000000 +0200
@@ -46,7 +46,7 @@
   about.addAuthor(ki18n("Hans van Leeuwen"), ki18n("Original author"), "hanz@hanz.nl", 0);
 
   KCmdLineOptions options;
-  options.add("+[prompt]",ki18n("Prompt")); 
+  options.add("+[prompt]",ki18n("Prompt"));
   KCmdLineArgs::init(argc, argv, &about);
   KCmdLineArgs::addCmdLineOptions( options );
   KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
@@ -57,14 +57,19 @@
   app.disableSessionManagement();
 
   QString walletFolder = about.appName();
-  QString dialog = i18n("Please enter password");  // Default dialog text.
+  QString dialog = i18n("Please enter passphrase");  // Default dialog text.
   QString keyFile;
   QString password;
+  bool wrongPassphrase = false;
 
   // Parse commandline arguments
   if ( args->count() > 0 ) {
     dialog = args->arg(0);
     keyFile = dialog.section(" ", -2).remove(":");
+
+		/* If the ssh-agent prompt starts with "Bad passphrase, try again for", then previously typed passphrase *or* retrived passphrase from kwallet *was* *wrong*.
+		TODO: Not sure if it will for all languages. */
+		wrongPassphrase = args->arg(0).startsWith(i18n("Bad passphrase, try again for"));
   }
   args->clear();
 
@@ -76,8 +81,9 @@
     wallet->setFolder(walletFolder);
 
     QString retrievedPass;
-
-    wallet->readPassword(keyFile, retrievedPass);
+		if (! wrongPassphrase) {
+		wallet->readPassword(keyFile, retrievedPass);
+		}
 
     if ( !retrievedPass.isEmpty() ) {
       password = retrievedPass;
@@ -122,5 +128,5 @@
 
   QTextStream out(stdout);
   out << password;
-  return 0; 
+  return 0;
 }

--- End Message ---
--- Begin Message ---
version: 0.5.3-1

Hi,

This bug has been fixed a long time ago, so I am closing the bug report.

If you think it's wrong, please re-open it.

Regards,

Adrien

Attachment: signature.asc
Description: This is a digitally signed message part.


--- End Message ---

Reply to: