tag 448628 + patch
thanks

Le mardi 30 octobre 2007 à 15:49 +0100, Josselin Mouette a écrit :
> Package: gksu
> Version: 2.0.0-4
> Severity: important
> 
> Since recently (I guess the 1.6.9p6-1 upload a week ago), sudo 
> translates the password prompt.

Well, in fact it seems to be caused by PAM translating the password
prompt.

> The obvious result is that gksu doesn't work anymore in this case.
> Furthermore, the -p option of sudo doesn't work in non-default locales
> (bug #448628), which makes it impossible to fix for the moment.

The problem lies in auth/pam.c, where the PAM password is replaced only
if it is found to be the default one - which it obviously isn't when it
is translated.

I'm attaching a patch to replace the password nevertheless when the user
explicitly asked for it. Please apply it to make gksudo usable again.

Thanks,
-- 
 .''`.
: :' :      We are debian.org. Lower your prices, surrender your code.
`. `'       We will add your hardware and software distinctiveness to
  `-        our own. Resistance is futile.
diff -u sudo-1.6.9p6/debian/changelog sudo-1.6.9p6/debian/changelog
--- sudo-1.6.9p6/debian/changelog
+++ sudo-1.6.9p6/debian/changelog
@@ -1,3 +1,10 @@
+sudo (1.6.9p6-1+0) UNRELEASED; urgency=low
+
+  * auth/pam.c: don't use the PAM prompt if the user explicitly 
+    requested a custom prompt. Closes: #448628.
+
+ -- Josselin Mouette <[EMAIL PROTECTED]>  Sat, 10 Nov 2007 01:45:37 +0100
+
 sudo (1.6.9p6-1) unstable; urgency=low
 
   * new upstream version, closes: #442815, #446146, #438699, #435768, #435314
only in patch2:
unchanged:
--- sudo-1.6.9p6.orig/auth/pam.c
+++ sudo-1.6.9p6/auth/pam.c
@@ -254,9 +254,11 @@
 	    case PAM_PROMPT_ECHO_ON:
 		SET(flags, TGP_ECHO);
 	    case PAM_PROMPT_ECHO_OFF:
-		/* Only override PAM prompt if it matches /^Password: ?/ */
-		if (strncmp(pm->msg, "Password:", 9) || (pm->msg[9] != '\0'
-		    && (pm->msg[9] != ' ' || pm->msg[10] != '\0')))
+		/* Only override PAM prompt if it matches /^Password: ?/ *
+		 * or if the user explicitly requested a prompt.         */
+		if (!user_prompt &&
+		    (strncmp(pm->msg, "Password:", 9) || (pm->msg[9] != '\0'
+		    && (pm->msg[9] != ' ' || pm->msg[10] != '\0'))))
 		    p = pm->msg;
 		/* Read the password. */
 		pass = tgetpass(p, def_passwd_timeout * 60, flags);

Attachment: signature.asc
Description: Ceci est une partie de message numériquement signée

Reply via email to