summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2020-01-09 15:18:14 -0500
committerJeff Johnston <jjohnstn@redhat.com>2020-01-09 15:18:14 -0500
commit1fdf871c9d32fdf4c4aca31be8d40bef5747eaae (patch)
tree71b53bc5540c643de67572757729ba890bdf42ec
parent1afb22a12083e9dcfaa2a010c14f3b36ee27d27b (diff)
downloadcygnal-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.tar.gz
cygnal-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.tar.bz2
cygnal-1fdf871c9d32fdf4c4aca31be8d40bef5747eaae.zip
Prevent more NULL ptr accesses due to Balloc out of memory
- fix gdtoa-gethex.c, ldtoa.c, and strtodg.c to use eBalloc
-rw-r--r--newlib/libc/stdlib/gdtoa-gethex.c4
-rw-r--r--newlib/libc/stdlib/ldtoa.c2
-rw-r--r--newlib/libc/stdlib/strtodg.c12
3 files changed, 9 insertions, 9 deletions
diff --git a/newlib/libc/stdlib/gdtoa-gethex.c b/newlib/libc/stdlib/gdtoa-gethex.c
index e0c2fff5e..1d3da2889 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 751386233..1cc97151a 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 743f60be5..0b5af99fe 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;