From owner-freebsd-bugs@FreeBSD.ORG Mon Mar 21 22:21:57 2011 Return-Path: Delivered-To: freebsd-bugs@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2E5C0106564A; Mon, 21 Mar 2011 22:21:57 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [IPv6:2001:470:a803::1]) by mx1.freebsd.org (Postfix) with ESMTP id 76CF48FC19; Mon, 21 Mar 2011 22:21:55 +0000 (UTC) Received: from mail.geekcn.org (tarsier.geekcn.org [211.166.10.233]) by tarsier.geekcn.org (Postfix) with ESMTP id 7F311AABD76; Tue, 22 Mar 2011 06:21:54 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([211.166.10.233]) by mail.geekcn.org (mail.geekcn.org [211.166.10.233]) (amavisd-new, port 10024) with LMTP id qqXARg3rVvEy; Tue, 22 Mar 2011 06:21:47 +0800 (CST) Received: from delta.delphij.net (drawbridge.ixsystems.com [206.40.55.65]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTPSA id 46375AABD6C; Tue, 22 Mar 2011 06:21:46 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:cc:subject:references:in-reply-to: x-enigmail-version:openpgp:content-type; b=RdMYaKSXxSum3fWAHOhaTzqcE7/fs5OYC9xfJ2eI4WaF7+8Ew9irYbz0zjJv4HVXQ Ep0jcCGrmK3N6y8TdvUJw== Message-ID: <4D87CF77.8070304@delphij.net> Date: Mon, 21 Mar 2011 15:21:43 -0700 From: Xin LI Organization: The FreeBSD Project User-Agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.15) Gecko/20110317 Thunderbird/3.1.9 ThunderBrowse/3.3.5 MIME-Version: 1.0 To: Alexander Best References: <201103202210.p2KMA3dS053483@freefall.freebsd.org> In-Reply-To: <201103202210.p2KMA3dS053483@freefall.freebsd.org> X-Enigmail-Version: 1.1.2 OpenPGP: id=3FCA37C1; url=http://www.delphij.net/delphij.asc Content-Type: multipart/mixed; boundary="------------070602090703020805030205" Cc: freebsd-bugs@FreeBSD.org Subject: Re: bin/146205: df(1) fails to display total space on a 100PB filesystem correctly X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Mar 2011 22:21:57 -0000 This is a multi-part message in MIME format. --------------070602090703020805030205 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 I think this is with the *= 100 clause. 100PB would use up to bit 57, and the *= 100 would consume an additional >5 bits, causing an integer overflow here. Fixing this requires an overhaul on the humanize_number(3) function I think. I think, we would have to split the result into quotient and reminder to deal with this. I have put together the attached patch but there *MIGHT* be some regressions which I didn't have time yet to write some test cases to verify that. Comments/test cases welcome. Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! Live free or die -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.17 (FreeBSD) iQEcBAEBCAAGBQJNh892AAoJEATO+BI/yjfBblYH/1ujN1ZD79Z1YKjSN+IgdZTq skSeB6cUdJr93LSxSnhojr7drOM4kO/m1tchsZtnYJxIK/rbU7e9vVhLo7VJUKU5 6jJ3sw6alOBFsi6eYRSb1LQRRAznMZqOC5Sg/cnbPuMLC5JDPT/P6wdKvEpebsst ffodPWHS3J3o0pbzt2C3IUlBEUby4wy5ZLerntT5SheuBc8HijCBk6XcTW1/7Iw8 bJxfJEKyp+ctvhoh4qINdLHkEnTEdLKm3Dqt/VlrbMh4JkHUbcql7diZ2LP4+5ce vv9FL4alEc4lV/hX2HDuvhNKCC4vWx7iCeed0pwc8ui0KLB2UsG1Fj/E6saMYOE= =qGsE -----END PGP SIGNATURE----- --------------070602090703020805030205 Content-Type: text/plain; name="humanize_number.c.diff" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="humanize_number.c.diff" SW5kZXg6IGh1bWFuaXplX251bWJlci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGh1bWFuaXplX251 bWJlci5jCShyZXZpc2lvbiAyMTk4NDIpCisrKyBodW1hbml6ZV9udW1iZXIuYwkod29ya2lu ZyBjb3B5KQpAQCAtNDcsOCArNDcsOSBAQAogICAgIGNvbnN0IGNoYXIgKnN1ZmZpeCwgaW50 IHNjYWxlLCBpbnQgZmxhZ3MpCiB7CiAJY29uc3QgY2hhciAqcHJlZml4ZXMsICpzZXA7Ci0J aW50CWIsIGksIHIsIG1heHNjYWxlLCBzMSwgczIsIHNpZ247CisJaW50CWksIHIsIG1heHNj YWxlLCBzMSwgczIsIHNpZ247CiAJaW50NjRfdAlkaXZpc29yLCBtYXg7CisJaW50NjRfdCBx dW90aWVudCA9IGJ5dGVzLCByZW1pbmRlciA9IDA7CiAJc2l6ZV90CWJhc2VsZW47CiAKIAlh c3NlcnQoYnVmICE9IE5VTEwpOwpAQCAtODgsMTEgKzg5LDEwIEBACiAJCWJ1ZlswXSA9ICdc MCc7CiAJaWYgKGJ5dGVzIDwgMCkgewogCQlzaWduID0gLTE7Ci0JCWJ5dGVzICo9IC0xMDA7 CisJCXF1b3RpZW50ID0gLXF1b3RpZW50OwogCQliYXNlbGVuID0gMzsJCS8qIHNpZ24sIGRp Z2l0LCBwcmVmaXggKi8KIAl9IGVsc2UgewogCQlzaWduID0gMTsKLQkJYnl0ZXMgKj0gMTAw OwogCQliYXNlbGVuID0gMjsJCS8qIGRpZ2l0LCBwcmVmaXggKi8KIAl9CiAJaWYgKGZsYWdz ICYgSE5fTk9TUEFDRSkKQEAgLTEwOSw3ICsxMDksNyBAQAogCiAJaWYgKHNjYWxlICYgKEhO X0FVVE9TQ0FMRSB8IEhOX0dFVFNDQUxFKSkgewogCQkvKiBTZWUgaWYgdGhlcmUgaXMgYWRk aXRpb25hbCBjb2x1bW5zIGNhbiBiZSB1c2VkLiAqLwotCQlmb3IgKG1heCA9IDEwMCwgaSA9 IGxlbiAtIGJhc2VsZW47IGktLSA+IDA7KQorCQlmb3IgKG1heCA9IDEsIGkgPSBsZW4gLSBi YXNlbGVuOyBpLS0gPiAwOykKIAkJCW1heCAqPSAxMDsKIAogCQkvKgpAQCAtMTE3LDI5ICsx MTcsMzMgQEAKIAkJICogSWYgdGhlcmUgd2lsbCBiZSBhbiBvdmVyZmxvdyBieSB0aGUgcm91 bmRpbmcgYmVsb3csCiAJCSAqIGRpdmlkZSBvbmNlIG1vcmUuCiAJCSAqLwotCQlmb3IgKGkg PSAwOyBieXRlcyA+PSBtYXggLSA1MCAmJiBpIDwgbWF4c2NhbGU7IGkrKykKLQkJCWJ5dGVz IC89IGRpdmlzb3I7CisJCWZvciAoaSA9IDA7IHF1b3RpZW50ID4gbWF4ICYmIGkgPCBtYXhz Y2FsZTsgaSsrKSB7CisJCQlyZW1pbmRlciA9IHF1b3RpZW50ICUgZGl2aXNvcjsKKwkJCXF1 b3RpZW50IC89IGRpdmlzb3I7CisJCX0KIAogCQlpZiAoc2NhbGUgJiBITl9HRVRTQ0FMRSkK IAkJCXJldHVybiAoaSk7Ci0JfSBlbHNlCi0JCWZvciAoaSA9IDA7IGkgPCBzY2FsZSAmJiBp IDwgbWF4c2NhbGU7IGkrKykKLQkJCWJ5dGVzIC89IGRpdmlzb3I7CisJfSBlbHNlIHsKKwkJ Zm9yIChpID0gMDsgaSA8IHNjYWxlICYmIGkgPCBtYXhzY2FsZTsgaSsrKSB7CisJCQlyZW1p bmRlciA9IHF1b3RpZW50ICUgZGl2aXNvcjsKKwkJCXF1b3RpZW50IC89IGRpdmlzb3I7CisJ CX0KKwl9CiAKIAkvKiBJZiBhIHZhbHVlIDw9IDkuOSBhZnRlciByb3VuZGluZyBhbmQgLi4u ICovCi0JaWYgKGJ5dGVzIDwgOTk1ICYmIGkgPiAwICYmIGZsYWdzICYgSE5fREVDSU1BTCkg eworCWlmIChxdW90aWVudCA9PSAwICYmIHJlbWluZGVyIDwgOTk1ICYmIGkgPiAwICYmIGZs YWdzICYgSE5fREVDSU1BTCkgewogCQkvKiBiYXNlbGVuICsgXDAgKyAuTiAqLwogCQlpZiAo bGVuIDwgYmFzZWxlbiArIDEgKyAyKQogCQkJcmV0dXJuICgtMSk7Ci0JCWIgPSAoKGludCli eXRlcyArIDUpIC8gMTA7Ci0JCXMxID0gYiAvIDEwOwotCQlzMiA9IGIgJSAxMDsKKwkJczEg PSAoaW50KXF1b3RpZW50ICsgKCgoaW50KXJlbWluZGVyICsgNSkgLyAxMDApOworCQlzMiA9 ICgoKGludClyZW1pbmRlciArIDUpIC8gMTApICUgMTA7CiAJCXIgPSBzbnByaW50ZihidWYs IGxlbiwgIiVkJXMlZCVzJXMlcyIsCiAJCSAgICBzaWduICogczEsIGxvY2FsZWNvbnYoKS0+ ZGVjaW1hbF9wb2ludCwgczIsCiAJCSAgICBzZXAsIFNDQUxFMlBSRUZJWChpKSwgc3VmZml4 KTsKIAl9IGVsc2UKIAkJciA9IHNucHJpbnRmKGJ1ZiwgbGVuLCAiJSIgUFJJZDY0ICIlcyVz JXMiLAotCQkgICAgc2lnbiAqICgoYnl0ZXMgKyA1MCkgLyAxMDApLAorCQkgICAgc2lnbiAq IChxdW90aWVudCArIChyZW1pbmRlciArIDUpIC8gMTAwKSwKIAkJICAgIHNlcCwgU0NBTEUy UFJFRklYKGkpLCBzdWZmaXgpOwogCiAJcmV0dXJuIChyKTsK --------------070602090703020805030205--