Date: Wed, 10 Dec 2003 08:43:04 -0800 (PST) From: Dag-Erling Smorgrav <des@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 43727 for review Message-ID: <200312101643.hBAGh4No010250@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=43727 Change 43727 by des@des.at.des.thinksec.com on 2003/12/10 08:42:25 I completely bungled the previous commit. Don't know what I was thinking (or smoking) at the time. Really fix it this time. Affected files ... .. //depot/projects/openpam/lib/openpam_ttyconv.c#24 edit Differences ... ==== //depot/projects/openpam/lib/openpam_ttyconv.c#24 (text+ko) ==== @@ -31,7 +31,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#23 $ + * $P4: //depot/projects/openpam/lib/openpam_ttyconv.c#24 $ */ #include <sys/types.h> @@ -119,7 +119,7 @@ } /* trim trailing whitespace */ for (len = strlen(buf); len > 0; --len) - if (!isspace(buf[len - 1])) + if (buf[len - 1] != '\r' && buf[len - 1] != '\n') break; buf[len] = '\0'; retval = strdup(buf); @@ -166,26 +166,27 @@ struct pam_response **resp, void *data) { + struct pam_response *aresp; int i; ENTER(); (void)data; if (n <= 0 || n > PAM_MAX_NUM_MSG) RETURNC(PAM_CONV_ERR); - if ((*resp = calloc(n, sizeof **resp)) == NULL) + if ((aresp = calloc(n, sizeof *aresp)) == NULL) RETURNC(PAM_BUF_ERR); for (i = 0; i < n; ++i) { - resp[i]->resp_retcode = 0; - resp[i]->resp = NULL; + aresp[i].resp_retcode = 0; + aresp[i].resp = NULL; switch (msg[i]->msg_style) { case PAM_PROMPT_ECHO_OFF: - (*resp[i]).resp = prompt_echo_off(msg[i]->msg); - if ((*resp[i]).resp == NULL) + aresp[i].resp = prompt_echo_off(msg[i]->msg); + if (aresp[i].resp == NULL) goto fail; break; case PAM_PROMPT_ECHO_ON: - (*resp[i]).resp = prompt(msg[i]->msg); - if ((*resp[i]).resp == NULL) + aresp[i].resp = prompt(msg[i]->msg); + if (aresp[i].resp == NULL) goto fail; break; case PAM_ERROR_MSG: @@ -204,16 +205,18 @@ goto fail; } } + *resp = aresp; RETURNC(PAM_SUCCESS); fail: for (i = 0; i < n; ++i) { - if ((*resp[i]).resp != NULL) { - memset((*resp[i]).resp, 0, strlen((*resp[i]).resp)); - FREE((*resp[i]).resp); + if (aresp[i].resp != NULL) { + memset(aresp[i].resp, 0, strlen(aresp[i].resp)); + FREE(aresp[i].resp); } } - memset(*resp, 0, n * sizeof **resp); - FREE(*resp); + memset(aresp, 0, n * sizeof *aresp); + FREE(aresp); + *resp = NULL; RETURNC(PAM_CONV_ERR); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200312101643.hBAGh4No010250>