From 7a1bf10a8433261a1dd4ae86b76750716d358569 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Fri, 2 Sep 2005 04:46:51 +0000 Subject: bad_addresses --- winsup/cygwin/heap.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin/heap.cc') diff --git a/winsup/cygwin/heap.cc b/winsup/cygwin/heap.cc index 9f86f9911..bd1b2e3c2 100644 --- a/winsup/cygwin/heap.cc +++ b/winsup/cygwin/heap.cc @@ -34,9 +34,11 @@ extern "C" size_t getpagesize (); void heap_init () { +static int seen = 0; /* If we're the forkee, we must allocate the heap at exactly the same place as our parent. If not, we don't care where it ends up. */ +seen++; page_const = system_info.dwPageSize; if (!cygheap->user_heap.base) { @@ -73,11 +75,11 @@ heap_init () MEM_RESERVE, PAGE_READWRITE); if (p) break; - if ((reserve_size -= page_const) <= allocsize) + if ((reserve_size -= page_const) < allocsize) break; } if (!p) - api_fatal ("couldn't allocate cygwin heap, %E, base %p, top %p, " + api_fatal ("couldn't allocate heap, %E, base %p, top %p, " "reserve_size %d, allocsize %d, page_const %d", cygheap->user_heap.base, cygheap->user_heap.top, reserve_size, allocsize, page_const); -- cgit v1.2.3