Index: Linux-PAM/modules/pam_unix/pam_unix_passwd.c =================================================================== --- Linux-PAM/modules/pam_unix/pam_unix_passwd.c.orig +++ Linux-PAM/modules/pam_unix/pam_unix_passwd.c @@ -1323,6 +1323,16 @@ } } + /* A null pointer here indicates a memory failure + somewhere along the way; don't set the password to + NULL! */ + if (tpass == NULL) { + pam_syslog(pamh, LOG_CRIT, + "out of memory for password"); + pass_new = pass_old = NULL; /* tidy up */ + return PAM_BUF_ERR; + } + D(("password processed")); /* update the password database(s) -- race conditions..? */