summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Langasek <vorlon@debian.org>2008-08-21 02:10:43 -0700
committerSteve Langasek <steve.langasek@ubuntu.com>2019-01-03 17:28:20 -0800
commitca500df9eeee7dde5c795c5e614a3b37dbe6df25 (patch)
treec1bf77936be02a07727f260f5d6b90eeb020d895
parentce6419bfa157fde0ec1295008615bff05ec0f4f3 (diff)
parent9abf95885df0df19ebe7c46464aa383b86cdd717 (diff)
pam_unix-chkpwd-wait: don't assume that the unix_chkpwd process exits
normally; if it was killed by a signal, we don't want to accept the password.
-rw-r--r--debian/changelog8
-rw-r--r--debian/patches-applied/pam_unix-chkpwd-wait22
-rw-r--r--debian/patches-applied/series1
3 files changed, 31 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 06123ec5..49258d6b 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,11 @@
+pam (1.0.1-4) UNRELEASED; urgency=low
+
+ * pam_unix-chkpwd-wait: don't assume that the unix_chkpwd process exits
+ normally; if it was killed by a signal, we don't want to accept the
+ password.
+
+ -- Julien Cristau <jcristau@debian.org> Thu, 21 Aug 2008 00:03:56 +0200
+
pam (1.0.1-3) unstable; urgency=high
* 055_pam_unix_nullok_secure: don't call _pammodutil_tty_secure with a NULL
diff --git a/debian/patches-applied/pam_unix-chkpwd-wait b/debian/patches-applied/pam_unix-chkpwd-wait
new file mode 100644
index 00000000..306b2e29
--- /dev/null
+++ b/debian/patches-applied/pam_unix-chkpwd-wait
@@ -0,0 +1,22 @@
+Index: pam.deb/modules/pam_unix/support.c
+===================================================================
+--- pam.deb.orig/modules/pam_unix/support.c
++++ pam.deb/modules/pam_unix/support.c
+@@ -504,7 +504,16 @@
+ pam_syslog(pamh, LOG_ERR, "unix_chkpwd waitpid returned %d: %m", rc);
+ retval = PAM_AUTH_ERR;
+ } else {
+- retval = WEXITSTATUS(retval);
++ if (WIFEXITED(retval))
++ retval = WEXITSTATUS(retval);
++ else {
++ if (WIFSIGNALED(retval))
++ pam_syslog(pamh, LOG_ERR, "unix_chkpwd got signal %d",
++ WTERMSIG(retval));
++ else
++ pam_syslog(pamh, LOG_ERR, "unix_chkpwd died unexpectedly");
++ retval = PAM_AUTH_ERR;
++ }
+ }
+ } else {
+ D(("fork failed"));
diff --git a/debian/patches-applied/series b/debian/patches-applied/series
index 9c85dc01..8035591b 100644
--- a/debian/patches-applied/series
+++ b/debian/patches-applied/series
@@ -19,4 +19,5 @@ hurd_no_setfsuid
PAM-manpage-section
pam_env_ignore_garbage.patch -p2
pam.d-manpage-section
+pam_unix-chkpwd-wait
autoconf.patch