From owner-freebsd-bugs@FreeBSD.ORG Mon Dec 1 19:46:14 2003 Return-Path: Delivered-To: freebsd-bugs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1F73716A4CE; Mon, 1 Dec 2003 19:46:14 -0800 (PST) Received: from franky.speednet.com.au (franky.speednet.com.au [203.57.65.5]) by mx1.FreeBSD.org (Postfix) with ESMTP id CA11343FA3; Mon, 1 Dec 2003 19:46:11 -0800 (PST) (envelope-from andyf@speednet.com.au) Received: from hewey.af.speednet.com.au (udsl-3-062.QLD.dft.com.au [202.168.108.62])hB23kAbr053548; Tue, 2 Dec 2003 14:46:10 +1100 (EST) (envelope-from andyf@speednet.com.au) Received: from [172.22.2.33] ([172.22.2.33])hB23k9Og023205; Tue, 2 Dec 2003 13:46:10 +1000 (EST) (envelope-from andyf@speednet.com.au) Date: Tue, 2 Dec 2003 13:46:09 +1000 (EST) From: Andy Farkas X-X-Sender: andyf@hewey.af.speednet.com.au To: "David E. O'Brien" In-Reply-To: <200312020315.hB23FbvV091846@freefall.freebsd.org> Message-ID: <20031202134151.Y16532@hewey.af.speednet.com.au> References: <200312020315.hB23FbvV091846@freefall.freebsd.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII cc: freebsd-bugs@freebsd.org Subject: Re: bin/59220: systat(1) device select (:only) broken X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Dec 2003 03:46:14 -0000 > Responsible-Changed-From-To: freebsd-bugs->obrien > Responsible-Changed-By: obrien > Responsible-Changed-When: Mon Dec 1 19:15:25 PST 2003 > Responsible-Changed-Why: > I'll take this one. Please note that I (along with the author of the original changes) may have been confused over the meanings of the variables tmpstr and tmpstr1 in the offending code. A simpler patch might look like this: --- devs.c-orig Fri Nov 21 13:23:33 2003 +++ devs.c Fri Nov 21 13:46:14 2003 @@ -280,12 +280,12 @@ ; if (*cp) *cp++ = '\0'; - if (cp - args == 0) + if (cp - tmpstr1 == 0) break; for (i = 0; i < num_devices; i++) { asprintf(&buffer, "%s%d", dev_select[i].device_name, dev_select[i].unit_number); - if (strcmp(buffer, tmpstr1) == 0) { + if (strcmp(tmpstr1, buffer) == 0) { num_devices_specified++; @@ -303,8 +303,8 @@ free(buffer); } if (i >= num_devices) - error("%s: unknown drive", args); - args = cp; + error("%s: unknown drive", tmpstr1); + tmpstr1 = cp; } free(tmpstr); -- :{ andyf@speednet.com.au Andy Farkas System Administrator Speednet Communications http://www.speednet.com.au/