diff --git a/auth/pam.c b/auth/pam.c index d6ba2df54..a9831ec9f 100644 --- a/auth/pam.c +++ b/auth/pam.c @@ -259,7 +259,7 @@ sudo_conv(num_msg, msg, response, appdata_ptr) int n, flags, std_prompt; if ((*response = malloc(num_msg * sizeof(struct pam_response))) == NULL) - return(PAM_CONV_ERR); + return(PAM_SYSTEM_ERR); zero_bytes(*response, num_msg * sizeof(struct pam_response)); for (pr = *response, pm = *msg, n = num_msg; n--; pr++, pm++) { @@ -331,5 +331,5 @@ err: zero_bytes(*response, num_msg * sizeof(struct pam_response)); free(*response); *response = NULL; - return(PAM_CONV_ERR); + return(gotintr ? PAM_AUTH_ERR : PAM_CONV_ERR); }