From 9abf95885df0df19ebe7c46464aa383b86cdd717 Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Thu, 21 Aug 2008 01:24:30 +0200 Subject: 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. --- debian/patches-applied/pam_unix-chkpwd-wait | 22 ++++++++++++++++++++++ debian/patches-applied/series | 1 + 2 files changed, 23 insertions(+) create mode 100644 debian/patches-applied/pam_unix-chkpwd-wait (limited to 'debian/patches-applied') 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 -- cgit v1.2.3