summaryrefslogtreecommitdiff
path: root/debian/patches-applied/pam_unix-chkpwd-wait
blob: f81f6906dd17eeb3cb27adce21815368620a65f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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"));