[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