From owner-p4-projects@FreeBSD.ORG Wed Dec 10 08:43:07 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 77F5316A4D0; Wed, 10 Dec 2003 08:43:07 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5158A16A4CE for ; Wed, 10 Dec 2003 08:43:07 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F385A43D1D for ; Wed, 10 Dec 2003 08:43:04 -0800 (PST) (envelope-from des@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hBAGh4XJ010256 for ; Wed, 10 Dec 2003 08:43:04 -0800 (PST) (envelope-from des@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hBAGh4No010250 for perforce@freebsd.org; Wed, 10 Dec 2003 08:43:04 -0800 (PST) (envelope-from des@freebsd.org) Date: Wed, 10 Dec 2003 08:43:04 -0800 (PST) Message-Id: <200312101643.hBAGh4No010250@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to des@freebsd.org using -f From: Dag-Erling Smorgrav To: Perforce Change Reviews Subject: PERFORCE change 43727 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 10 Dec 2003 16:43:08 -0000 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 @@ -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); }