Index: lib/libpam/modules/pam_exec/pam_exec.c =================================================================== --- lib/libpam/modules/pam_exec/pam_exec.c +++ lib/libpam/modules/pam_exec/pam_exec.c @@ -260,7 +260,15 @@ strcmp(func, "pam_sm_setcred") == 0) { /* don't prompt, only expose existing token */ rc = pam_get_item(pamh, PAM_AUTHTOK, &item); - authtok = item; + + if (item != NULL) { + authtok = item; + } else { + openpam_log(PAM_LOG_ERROR, + "%s: pam_get_authtok(): %s", + func, "existing token not available"); + OUT(PAM_SYSTEM_ERR); + } } else { rc = pam_get_authtok(pamh, PAM_AUTHTOK, &authtok, NULL); }