From ff19b3d86bebbcf6443ca33c5f3bf2bd7d487fdd Mon Sep 17 00:00:00 2001 From: fredrik Date: Tue, 26 Dec 2006 13:36:21 +0000 Subject: [PATCH] More correct return on conv error. git-svn-id: svn+ssh://svn.dolda2000.com/srv/svn/repos/src/doldaconnect@789 959494ce-11ee-0310-bf91-de5d638817bd --- daemon/auth-pam.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/daemon/auth-pam.c b/daemon/auth-pam.c index 48dbcbd..b11825a 100644 --- a/daemon/auth-pam.c +++ b/daemon/auth-pam.c @@ -99,20 +99,22 @@ static int pamconv(int nmsg, const struct pam_message **msg, struct pam_response } if(data->converr) { - for(; i < nmsg; i++) - { - (*resp)[i].resp = sstrdup(""); - (*resp)[i].resp_retcode = PAM_SUCCESS; - } + for(i--; i >= 0; i--) + free((*resp)[i].resp); + free(*resp); + *resp = NULL; return(PAM_CONV_ERR); } + (*resp)[i].resp_retcode = PAM_SUCCESS; switch(msg[i]->msg_style) { case PAM_PROMPT_ECHO_OFF: case PAM_PROMPT_ECHO_ON: (*resp)[i].resp = sstrdup((char *)data->passdata); memset((void *)data->passdata, 0, strlen((char *)data->passdata)); - (*resp)[i].resp_retcode = PAM_SUCCESS; + break; + default: + (*resp)[i].resp = NULL; break; } } -- 2.11.0