From owner-cvs-src@FreeBSD.ORG Sun Apr 30 00:50:08 2006 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7E53116A403; Sun, 30 Apr 2006 00:50:08 +0000 (UTC) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3DA5743D45; Sun, 30 Apr 2006 00:50:08 +0000 (GMT) (envelope-from bde@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id k3U0o8sf071029; Sun, 30 Apr 2006 00:50:08 GMT (envelope-from bde@repoman.freebsd.org) Received: (from bde@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id k3U0o8jZ071028; Sun, 30 Apr 2006 00:50:08 GMT (envelope-from bde) Message-Id: <200604300050.k3U0o8jZ071028@repoman.freebsd.org> From: Bruce Evans Date: Sun, 30 Apr 2006 00:50:08 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/usr.bin/systat vmstat.c X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 30 Apr 2006 00:50:08 -0000 bde 2006-04-30 00:50:08 UTC FreeBSD src repository Modified files: usr.bin/systat vmstat.c Log: Backed out rev.1.49 since it had buffer overruns and only worked accidentally. Read buffer overruns: The size of the target array (TSOTTA == 10) is a wrong limit to use for scanning the source string. Write buffer overruns: TSOTTA is also a wrong limit to use for copying to the target buffer, since we want to add a NUL terminator afterwards. TSOTTA was also 1 too small for holding both the desired number of visible characters and the NUL. Worked accidentally: There is error in the algorithm that tends to result in the space saved by stripping "irq" not actually being used, but some cases worked accidentally provided "irqN" is near the end of the source string and "N" is only 1 digit. Starting with 5.mumble-CURRENT, "irqN" is at the beginning of the string on all (?) arches that have it and the accidents don't happen. E.g. on i386's, the keyboard irq is now named "irq1: atkbd0" by the kernel, and this name was converted to "1: atkb" -- not only the device number but part of the device name has been lost --, while before 5.mumble the kernel name was "atkbd0 irq1" and systat accidentally preserved the irq number to give "atkbd0 1". The ":" in the string wastes precious space, and stripping "irq" results in descriptions starting with numbers which makes them look too much like counts. This commit just fixes the last problem. Revision Changes Path 1.71 +2 -10 src/usr.bin/systat/vmstat.c