From owner-p4-projects@FreeBSD.ORG Sun Mar 28 16:58:29 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EAC9816A4D0; Sun, 28 Mar 2004 16:58:28 -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 C1CC416A4CE for ; Sun, 28 Mar 2004 16:58:28 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BA0E343D39 for ; Sun, 28 Mar 2004 16:58:28 -0800 (PST) (envelope-from marcel@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i2T0wSGe069058 for ; Sun, 28 Mar 2004 16:58:28 -0800 (PST) (envelope-from marcel@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i2T0wSSa069055 for perforce@freebsd.org; Sun, 28 Mar 2004 16:58:28 -0800 (PST) (envelope-from marcel@freebsd.org) Date: Sun, 28 Mar 2004 16:58:28 -0800 (PST) Message-Id: <200403290058.i2T0wSSa069055@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to marcel@freebsd.org using -f From: Marcel Moolenaar To: Perforce Change Reviews Subject: PERFORCE change 49858 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: Mon, 29 Mar 2004 00:58:29 -0000 http://perforce.freebsd.org/chv.cgi?CH=49858 Change 49858 by marcel@marcel_nfs on 2004/03/28 16:57:53 Fix gdb_rx_varhex(): make sure the rx pointer is moved back correctly in all cases when we fetch a non-hex digit. Affected files ... .. //depot/projects/gdb/sys/gdb/gdb_packet.c#8 edit Differences ... ==== //depot/projects/gdb/sys/gdb/gdb_packet.c#8 (text+ko) ==== @@ -114,29 +114,29 @@ gdb_rx_varhex(uintmax_t *vp) { uintmax_t v; - int c, neg, valid; + int c, neg; c = gdb_rx_char(); - if (c == -1) - return (-1); neg = (c == '-') ? 1 : 0; if (neg == 1) c = gdb_rx_char(); + if (!isxdigit(c)) { + gdb_rxp -= ((c == -1) ? 0 : 1) + neg; + gdb_rxsz += ((c == -1) ? 0 : 1) + neg; + return (-1); + } v = 0; - valid = (isxdigit(c)) ? 1 : 0; - while (valid) { + do { v <<= 4; v += C2N(c); c = gdb_rx_char(); - if (!isxdigit(c)) - break; + } while (isxdigit(c)); + if (c != -1) { + gdb_rxp--; + gdb_rxsz++; } - if (!valid || c != -1) { - gdb_rxp -= 1 + neg - valid; - gdb_rxsz += 1 + neg - valid; - } *vp = (neg) ? -v : v; - return ((valid) ? 0 : -1); + return (0); } /*