summaryrefslogtreecommitdiff
path: root/debian/patches-applied/pam_unix-chkpwd-wait
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches-applied/pam_unix-chkpwd-wait')
-rw-r--r--debian/patches-applied/pam_unix-chkpwd-wait22
1 files changed, 22 insertions, 0 deletions
diff --git a/debian/patches-applied/pam_unix-chkpwd-wait b/debian/patches-applied/pam_unix-chkpwd-wait
new file mode 100644
index 00000000..f81f6906
--- /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 exited on signal %d",
++ WTERMSIG(retval));
++ else
++ pam_syslog(pamh, LOG_ERR, "unix_chkpwd died unexpectedly");
++ retval = PAM_AUTH_ERR;
++ }
+ }
+ } else {
+ D(("fork failed"));