From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 125174 invoked by alias); 9 Jan 2020 20:19:25 -0000 Mailing-List: contact newlib-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-cvs-owner@sourceware.org Received: (qmail 125128 invoked by uid 447); 9 Jan 2020 20:19:25 -0000 Date: Thu, 09 Jan 2020 20:19:00 -0000 Message-ID: <20200109201925.125127.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Jeff Johnston To: newlib-cvs@sourceware.org Subject: [newlib-cygwin] Prevent more NULL ptr accesses due to Balloc out of memory X-Act-Checkin: newlib-cygwin X-Git-Author: Jeff Johnston X-Git-Refname: refs/heads/master X-Git-Oldrev: 1afb22a12083e9dcfaa2a010c14f3b36ee27d27b X-Git-Newrev: 1fdf871c9d32fdf4c4aca31be8d40bef5747eaae X-SW-Source: 2020-q1/txt/msg00003.txt https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=1fdf871c9d32fdf4c4aca31be8d40bef5747eaae commit 1fdf871c9d32fdf4c4aca31be8d40bef5747eaae Author: Jeff Johnston Date: Thu Jan 9 15:18:14 2020 -0500 Prevent more NULL ptr accesses due to Balloc out of memory - fix gdtoa-gethex.c, ldtoa.c, and strtodg.c to use eBalloc Diff: --- newlib/libc/stdlib/gdtoa-gethex.c | 4 ++-- newlib/libc/stdlib/ldtoa.c | 2 +- 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;