Incorrect _Kmax value

Corinna Vinschen
Thu Feb 10 18:58:00 GMT 2011

On Feb 10 19:04, Aleksandr Platonov wrote:
> Hi,
> _Kmax is defined as (sizeof (size_t) << 3) and means the maximum index
> value of _REENT->_freelist array.
> If the size of size_t is equal to 4 then Balloc(prt, _Kmax - 1) call
> sets _maxwds to negative value. Balloc(ptr, _Kmax) call allocates memory
> for sizeof (_Bigint) - sizeof(rv->_x) bytes and sets _maxwds to 0.

When, where and why should this happen?

The definitions and the code in question is BSD code which is used,
for instance, in NetBSD as well.  The definition of _Kmax is the
same, too.

> So, it seems that _Kmax value is too big and should be (sizeof (size_t)
> << 3) - 2 or less.

Please provide a simple testcase which allows to reproduce the 


Corinna Vinschen
Cygwin Project Co-Leader
Red Hat

More information about the Newlib mailing list