Incorrect _Kmax value

Aleksandr Platonov
Thu Feb 10 16:16:00 GMT 2011

_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.
So, it seems that _Kmax value is too big and should be (sizeof (size_t)
<< 3) - 2 or less.
Aleksandr Platonov

More information about the Newlib mailing list