From cc936a97df69d3936341e7e6642d445aad13a703 Mon Sep 17 00:00:00 2001 From: Patrick Williams Date: Thu, 9 Jun 2011 14:24:10 -0500 Subject: Fix page rounding issue in malloc. Change-Id: I22c7d2b7c4d9d77b235efd6a3e0ff9280ac8a854 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/143 Tested-by: Jenkins Server Reviewed-by: Nicholas E. Bofferding --- src/lib/stdlib.C | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/stdlib.C b/src/lib/stdlib.C index 1614bdd8f..ab509ca9a 100644 --- a/src/lib/stdlib.C +++ b/src/lib/stdlib.C @@ -7,7 +7,8 @@ void* malloc(size_t s) { if (s > HeapManager::MAX_ALLOC_SIZE) { - size_t pages = (s+8) / PageManager::PAGESIZE; + size_t pages = (s + 8 + (PageManager::PAGESIZE - 1)) + / PageManager::PAGESIZE; void* v = PageManager::allocatePage(pages); size_t* len = (size_t*)v; *len = pages << 8; -- cgit v1.2.1