I have prepared and tested a package that fixes this bug. I intend to
upload it as an NMU, uploading it to the 7-DAY delayed queue.
The package applies Dann's patch and also stores it in the patches-applied
dir. The patch is pretty harmless and does prevent the program from
segfaulting. I don't expect any side-effects.
I'm attaching the full interdiff output of the package I have prepared.
Hope you find it good and clear.
--
Love,
Marga.
diff -u pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.c
pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.c
--- pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.c
+++ pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.c
@@ -1121,7 +1121,7 @@
* password is acceptable.
*/
- if (pass_new[0] == '\0') { /* "\0" password = NULL
*/
+ if (pass_new && pass_new[0] == '\0') { /* "\0"
password = NULL */
pass_new = NULL;
}
retval = _pam_unix_approve_pass(pamh, ctrl, pass_old,
pass_new);
diff -u pam-0.79/debian/changelog pam-0.79/debian/changelog
--- pam-0.79/debian/changelog
+++ pam-0.79/debian/changelog
@@ -1,3 +1,11 @@
+pam (0.79-3.2) unstable; urgency=low
+
+ * Non-maintainer upload to fix important bug, that makes passwd segfault
+ when CTRL-D is pressed at the password prompt. Applied the patch provided
+ by Dann Frazier. (Closes: #360657)
+
+ -- Margarita Manterola <[EMAIL PROTECTED]> Sat, 5 Aug 2006 02:11:22 -0300
+
pam (0.79-3.1) unstable; urgency=low
* Non-maintainer upload.
only in patch2:
unchanged:
--- pam-0.79.orig/debian/patches-applied/060_passwd_segv
+++ pam-0.79/debian/patches-applied/060_passwd_segv
@@ -0,0 +1,11 @@
+--- pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.c 2006-08-05
02:08:38.481324822 -0300
++++ pam-0.79/Linux-PAM/modules/pam_unix/pam_unix_passwd.new.c 2006-08-05
02:07:24.759924439 -0300
+@@ -1121,7 +1121,7 @@
+ * password is acceptable.
+ */
+
+- if (pass_new[0] == '\0') { /* "\0" password = NULL
*/
++ if (pass_new && pass_new[0] == '\0') { /* "\0"
password = NULL */
+ pass_new = NULL;
+ }
+ retval = _pam_unix_approve_pass(pamh, ctrl, pass_old,
pass_new);