mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 22:10:13 +00:00
[BZ #2775]
* malloc/malloc.c (sYSMALLOc): Only call grow_heap if (long) (MINSIZE + nb - old_size) is positive. * malloc/arena.c (grow_heap): When growing bail even if new_size is negative.
This commit is contained in:
parent
ba40cc1540
commit
469615bdd4
@ -1,5 +1,12 @@
|
|||||||
2006-09-07 Jakub Jelinek <jakub@redhat.com>
|
2006-09-07 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
[BZ #2775]
|
||||||
|
* malloc/malloc.c (sYSMALLOc): Only call grow_heap if
|
||||||
|
(long) (MINSIZE + nb - old_size) is positive.
|
||||||
|
|
||||||
|
* malloc/arena.c (grow_heap): When growing bail even if new_size
|
||||||
|
is negative.
|
||||||
|
|
||||||
[BZ #3155]
|
[BZ #3155]
|
||||||
* sysdeps/powerpc/powerpc32/fpu/s_lrint.S (__lrint): Don't access
|
* sysdeps/powerpc/powerpc32/fpu/s_lrint.S (__lrint): Don't access
|
||||||
stack below r1.
|
stack below r1.
|
||||||
|
@ -712,7 +712,7 @@ grow_heap(h, diff) heap_info *h; long diff;
|
|||||||
if(diff >= 0) {
|
if(diff >= 0) {
|
||||||
diff = (diff + page_mask) & ~page_mask;
|
diff = (diff + page_mask) & ~page_mask;
|
||||||
new_size = (long)h->size + diff;
|
new_size = (long)h->size + diff;
|
||||||
if(new_size > HEAP_MAX_SIZE)
|
if((unsigned long) new_size > (unsigned long) HEAP_MAX_SIZE)
|
||||||
return -1;
|
return -1;
|
||||||
if(mprotect((char *)h + h->size, diff, PROT_READ|PROT_WRITE) != 0)
|
if(mprotect((char *)h + h->size, diff, PROT_READ|PROT_WRITE) != 0)
|
||||||
return -2;
|
return -2;
|
||||||
|
@ -2970,7 +2970,8 @@ static Void_t* sYSMALLOc(nb, av) INTERNAL_SIZE_T nb; mstate av;
|
|||||||
/* First try to extend the current heap. */
|
/* First try to extend the current heap. */
|
||||||
old_heap = heap_for_ptr(old_top);
|
old_heap = heap_for_ptr(old_top);
|
||||||
old_heap_size = old_heap->size;
|
old_heap_size = old_heap->size;
|
||||||
if (grow_heap(old_heap, MINSIZE + nb - old_size) == 0) {
|
if ((long) (MINSIZE + nb - old_size) > 0
|
||||||
|
&& grow_heap(old_heap, MINSIZE + nb - old_size) == 0) {
|
||||||
av->system_mem += old_heap->size - old_heap_size;
|
av->system_mem += old_heap->size - old_heap_size;
|
||||||
arena_mem += old_heap->size - old_heap_size;
|
arena_mem += old_heap->size - old_heap_size;
|
||||||
#if 0
|
#if 0
|
||||||
|
Loading…
Reference in New Issue
Block a user