X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fauth-pam.c;h=b11825a1d6504704e76e68693a1b1c5de909dcbb;hb=9c9a61bea8932c9a4bf1b1c5c11a9759f0430320;hp=48dbcbddfdf6123b0cb19446c075624234b14741;hpb=d3372da97568d5e1f35fa19787c8ec8af93a0435;p=doldaconnect.git 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; } }