malloc: ensure set_max_fast never stores zero [BZ #25733]
commitb9cde4e3aa1ff338da7064daf1386b2f4a7351ba
authorDJ Delorie <dj@redhat.com>
Sat, 4 Apr 2020 05:44:56 +0000 (4 01:44 -0400)
committerDJ Delorie <dj@redhat.com>
Mon, 6 Apr 2020 20:27:53 +0000 (6 16:27 -0400)
treeaeb6c2e6b1878334bc18cb8729f16d0e3a1da3e3
parent4531ba8ebfedf97a31834201eaaf71c375793de2
malloc: ensure set_max_fast never stores zero [BZ #25733]

The code for set_max_fast() stores an "impossibly small value"
instead of zero, when the parameter is zero.  However, for
small values of the parameter (ex: 1 or 2) the computation
results in a zero being stored anyway.

This patch checks for the parameter being small enough for the
computation to result in zero instead, so that a zero is never
stored.

key values which result in zero being stored:

x86-64:  1..7  (or other 64-bit)
i686:    1..11
armhfp:  1..3  (or other 32-bit)

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
malloc/malloc.c