diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2020-01-09 15:18:14 -0500 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2020-01-09 15:18:14 -0500 |
commit | 1fdf871c9d32fdf4c4aca31be8d40bef5747eaae (patch) | |
tree | 71b53bc5540c643de67572757729ba890bdf42ec /newlib/libc/stdlib | |
parent | 1afb22a12083e9dcfaa2a010c14f3b36ee27d27b (diff) | |
download | newlib-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.zip newlib-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.tar.gz newlib-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.tar.bz2 |
Prevent more NULL ptr accesses due to Balloc out of memory
- fix gdtoa-gethex.c, ldtoa.c, and strtodg.c to use eBalloc
Diffstat (limited to 'newlib/libc/stdlib')
-rw-r--r-- | newlib/libc/stdlib/gdtoa-gethex.c | 4 | ||||
-rw-r--r-- | newlib/libc/stdlib/ldtoa.c | 2 | ||||
-rw-r--r-- | newlib/libc/stdlib/strtodg.c | 12 |
3 files changed, 9 insertions, 9 deletions
diff --git a/newlib/libc/stdlib/gdtoa-gethex.c b/newlib/libc/stdlib/gdtoa-gethex.c index e0c2fff..1d3da28 100644 --- a/newlib/libc/stdlib/gdtoa-gethex.c +++ b/newlib/libc/stdlib/gdtoa-gethex.c @@ -129,7 +129,7 @@ increment (struct _reent *ptr, #endif { if (b->_wds >= b->_maxwds) { - b1 = Balloc(ptr, b->_k+1); + b1 = eBalloc(ptr, b->_k+1); Bcopy(b1, b); Bfree(ptr, b); b = b1; @@ -219,7 +219,7 @@ gethex (struct _reent *ptr, const char **sp, const FPI *fpi, n = s1 - s0 - 1; for(k = 0; n > 7; n >>= 1) k++; - b = Balloc(ptr, k); + b = eBalloc(ptr, k); x = b->_x; n = 0; L = 0; diff --git a/newlib/libc/stdlib/ldtoa.c b/newlib/libc/stdlib/ldtoa.c index 7513862..1cc9715 100644 --- a/newlib/libc/stdlib/ldtoa.c +++ b/newlib/libc/stdlib/ldtoa.c @@ -2923,7 +2923,7 @@ stripspaces: for (_REENT_MP_RESULT_K (ptr) = 0; sizeof (_Bigint) - sizeof (__ULong) + j <= i; j <<= 1) _REENT_MP_RESULT_K (ptr)++; - _REENT_MP_RESULT (ptr) = Balloc (ptr, _REENT_MP_RESULT_K (ptr)); + _REENT_MP_RESULT (ptr) = eBalloc (ptr, _REENT_MP_RESULT_K (ptr)); /* Copy from internal temporary buffer to permanent buffer. */ outstr = (char *) _REENT_MP_RESULT (ptr); diff --git a/newlib/libc/stdlib/strtodg.c b/newlib/libc/stdlib/strtodg.c index 743f60b..0b5af99 100644 --- a/newlib/libc/stdlib/strtodg.c +++ b/newlib/libc/stdlib/strtodg.c @@ -63,7 +63,7 @@ sum (struct _reent *p, _Bigint *a, _Bigint *b) if (a->_wds < b->_wds) { c = b; b = a; a = c; } - c = Balloc(p, a->_k); + c = eBalloc(p, a->_k); c->_wds = a->_wds; carry = 0; xa = a->_x; @@ -103,7 +103,7 @@ sum (struct _reent *p, _Bigint *a, _Bigint *b) #endif if (carry) { if (c->_wds == c->_maxwds) { - b = Balloc(p, c->_k + 1); + b = eBalloc(p, c->_k + 1); Bcopy(b, c); Bfree(p, c); c = b; @@ -190,7 +190,7 @@ increment (struct _reent *p, _Bigint *b) #endif { if (b->_wds >= b->_maxwds) { - b1 = Balloc(p,b->_k+1); + b1 = eBalloc(p,b->_k+1); Bcopy(b1,b); Bfree(p,b); b = b1; @@ -253,7 +253,7 @@ set_ones (struct _reent *p, _Bigint *b, int n) k = (n + ((1 << kshift) - 1)) >> kshift; if (b->_k < k) { Bfree(p,b); - b = Balloc(p,k); + b = eBalloc(p,k); } k = n >> kshift; if (n &= kmask) @@ -792,9 +792,9 @@ _strtodg_l (struct _reent *p, const char *s00, char **se, FPI *fpi, Long *exp, bd0 = s2b(p, s0, nd0, nd, y); for(;;) { - bd = Balloc(p,bd0->_k); + bd = eBalloc(p,bd0->_k); Bcopy(bd, bd0); - bb = Balloc(p,rvb->_k); + bb = eBalloc(p,rvb->_k); Bcopy(bb, rvb); bbbits = rvbits - bb0; bbe = rve + bb0; |