[Bug 224498] ls -lh does not display properly around 1MB, 1GB, ...
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Thu Dec 28 22:57:59 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224498
--- Comment #5 from commit-hook at freebsd.org ---
A commit references this bug:
Author: robak
Date: Thu Dec 28 22:57:35 UTC 2017
New revision: 327317
URL: https://svnweb.freebsd.org/changeset/base/327317
Log:
humanize_number(3): fix math edge case in rounding large numbers
Fix for remainder overflow, when in rare cases adding remainder to divider
exceeded 1 and turned the total to 1000 in final formatting, taking up
the space for the unit character.
The fix continues the division of the original number if the above case
happens -- added the appropriate check to the for loop performing
the division. This lowers the value shown, to make it fit into the buffer
space provided (1.0M for 4+1 character buffer, as used by ls).
Add test case for the reported bug and extend test program to support
providing buffer length (ls -lh uses 5, tests hard-coded 4).
PR: 224498
Submitted by: Pawel Biernacki <pawel.biernacki at gmail.com>
Reported by: Masachika Ishizuka <ish at amail.plala.or.jp>
Reviewed by: cem, kib
Approved by: cem, kib
MFC after: 1 week
Sponsored by: Mysterious Code Ltd.
Differential Revision: D13578
Changes:
head/lib/libutil/humanize_number.3
head/lib/libutil/humanize_number.c
head/lib/libutil/tests/humanize_number_test.c
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-bugs
mailing list