From 02615e8b750e09a54d7c29b472f23c71286fd59b Mon Sep 17 00:00:00 2001 From: "sgjesse@chromium.org" Date: Tue, 19 Oct 2010 08:23:47 +0000 Subject: [PATCH] Make randomized allocations along 64k granularity boundaries to avoid comitting unused memory. BUG=56036 TEST=None. Patch by Justin Schuh Review URL: http://codereview.chromium.org/3849004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5655 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/platform-win32.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/platform-win32.cc b/src/platform-win32.cc index 964d7bf..8c6d007 100644 --- a/src/platform-win32.cc +++ b/src/platform-win32.cc @@ -845,14 +845,15 @@ void* OS::Allocate(const size_t requested, bool is_executable) { // The address range used to randomize RWX allocations in OS::Allocate // Try not to map pages into the default range that windows loads DLLs + // Use a multiple of 64k to prevent committing unused memory. // Note: This does not guarantee RWX regions will be within the // range kAllocationRandomAddressMin to kAllocationRandomAddressMax #ifdef V8_HOST_ARCH_64_BIT static const intptr_t kAllocationRandomAddressMin = 0x0000000080000000; - static const intptr_t kAllocationRandomAddressMax = 0x000004FFFFFFFFFF; + static const intptr_t kAllocationRandomAddressMax = 0x000003FFFFFF0000; #else static const intptr_t kAllocationRandomAddressMin = 0x04000000; - static const intptr_t kAllocationRandomAddressMax = 0x4FFFFFFF; + static const intptr_t kAllocationRandomAddressMax = 0x3FFF0000; #endif // VirtualAlloc rounds allocated size to page size automatically. -- 2.7.4