From owner-freebsd-bugs@FreeBSD.ORG Sun Sep 9 06:40:06 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E36651065673 for ; Sun, 9 Sep 2012 06:40:05 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id B95B08FC14 for ; Sun, 9 Sep 2012 06:40:05 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q896e540041409 for ; Sun, 9 Sep 2012 06:40:05 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q896e5hs041399; Sun, 9 Sep 2012 06:40:05 GMT (envelope-from gnats) Resent-Date: Sun, 9 Sep 2012 06:40:05 GMT Resent-Message-Id: <201209090640.q896e5hs041399@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Matthew Seaman Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A96171065673 for ; Sun, 9 Sep 2012 06:32:36 +0000 (UTC) (envelope-from m.seaman@infracaninophile.co.uk) Received: from smtp.infracaninophile.co.uk (smtp6.infracaninophile.co.uk [IPv6:2001:8b0:151:1:3cd3:cd67:fafa:3d78]) by mx1.freebsd.org (Postfix) with ESMTP id 1A4B08FC17 for ; Sun, 9 Sep 2012 06:32:35 +0000 (UTC) Received: from lucid-nonsense.infracaninophile.co.uk (localhost [IPv6:::1]) by smtp.infracaninophile.co.uk (8.14.5/8.14.5) with ESMTP id q896WRIQ011656 for ; Sun, 9 Sep 2012 07:32:27 +0100 (BST) (envelope-from matthew@lucid-nonsense.infracaninophile.co.uk) Received: (from matthew@localhost) by lucid-nonsense.infracaninophile.co.uk (8.14.5/8.14.5/Submit) id q896WQ9b011655; Sun, 9 Sep 2012 07:32:26 +0100 (BST) (envelope-from matthew) Message-Id: <201209090632.q896WQ9b011655@lucid-nonsense.infracaninophile.co.uk> Date: Sun, 9 Sep 2012 07:32:26 +0100 (BST) From: Matthew Seaman To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Cc: Subject: bin/171487: humanize_number(3) fails to show HN_IEC_PREFIXES correctly X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Matthew Seaman List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 09 Sep 2012 06:40:06 -0000 >Number: 171487 >Category: bin >Synopsis: humanize_number(3) fails to show HN_IEC_PREFIXES correctly >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Sep 09 06:40:05 UTC 2012 >Closed-Date: >Last-Modified: >Originator: Matthew Seaman >Release: FreeBSD 9.0-STABLE amd64 >Organization: Infracaninophile >Environment: System: FreeBSD lucid-nonsense.infracaninophile.co.uk 9.0-STABLE FreeBSD 9.0-STABLE #18 r237463: Sat Jun 23 07:14:31 BST 2012 root@lucid-nonsense.infracaninophile.co.uk:/usr/obj/usr/src/sys/LUCID-NONSENSE amd64 >Description: An off-by-one error means that humanize_number(3) can't produce the IEC / SI binary prefixes (Ki, Mi, Gi, etc) correctly. >How-To-Repeat: worm:/tmp:% cat foo.c #include #include int main (__unused int argc, __unused const char *argv[]) { char buf[12]; humanize_number(buf, sizeof(buf), 1048576, "", 1, HN_IEC_PREFIXES); printf("%s\n", buf); } worm:/tmp:% clang -lutil -o foo foo.c worm:/tmp:% ./foo 1024 i After applying the patch: worm:/tmp:% ./foo 1024 Ki >Fix: --- HN.diff begins here --- Index: humanize_number.c =================================================================== --- humanize_number.c (revision 238771) +++ humanize_number.c (working copy) @@ -76,7 +76,7 @@ if (flags & HN_B) prefixes = "B\0\0Ki\0Mi\0Gi\0Ti\0Pi\0Ei"; else - prefixes = "\0\0Ki\0Mi\0Gi\0Ti\0Pi\0Ei"; + prefixes = "\0\0\0Ki\0Mi\0Gi\0Ti\0Pi\0Ei"; } else { baselen = 1; if (flags & HN_DIVISOR_1000) --- HN.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted: