summaryrefslogtreecommitdiff
path: root/src/vm/loaderallocator.cpp
diff options
context:
space:
mode:
authorJonghyun Park <parjong@gmail.com>2017-07-31 16:48:16 +0900
committerJan Kotas <jkotas@microsoft.com>2017-07-31 09:48:16 +0200
commit1c540c594cc55d8446086dcd979c48efa84e00a9 (patch)
tree51c47945f71336974265801adcd7d3bd5dd90080 /src/vm/loaderallocator.cpp
parent8c7d6b3d2b6955d05e7289a09755a25d252273b1 (diff)
downloadcoreclr-1c540c594cc55d8446086dcd979c48efa84e00a9.tar.gz
coreclr-1c540c594cc55d8446086dcd979c48efa84e00a9.tar.bz2
coreclr-1c540c594cc55d8446086dcd979c48efa84e00a9.zip
Fill freed loader heap chunk with non-zero value (#12731)
* Add FEATURE_LOADER_HEAP_GUARD feature * Invoke memset only for reclaimed regions * Enable FEATURE_LOADER_HEAP_GUARD by default * Insert trap inside UMEntryThunk::Terminate * Make all exectuable heaps not to zero-initialize itself Use fZeroInit (instead of fMakeRelazed) * Add comment * Revert unnecessary changes * Add and use 'Poison' method to insert a trap * Do NOT invoke FlushInstructionCache * Update comment * Add comment on ARM Poisoning instruction * Use X86_INSTR_INT3 instead of 0xCC
Diffstat (limited to 'src/vm/loaderallocator.cpp')
-rw-r--r--src/vm/loaderallocator.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/vm/loaderallocator.cpp b/src/vm/loaderallocator.cpp
index 1a05bf2c05..ff54277efd 100644
--- a/src/vm/loaderallocator.cpp
+++ b/src/vm/loaderallocator.cpp
@@ -1005,7 +1005,9 @@ void LoaderAllocator::Init(BaseDomain *pDomain, BYTE *pExecutableHeapMemory)
dwExecutableHeapReserveSize,
LOADERHEAP_PROFILE_COUNTER,
NULL,
- TRUE /* Make heap executable */);
+ TRUE /* Make heap executable */,
+ FALSE /* Disable zero-initialization (needed by UMEntryThunkCode::Poison) */
+ );
initReservedMem += dwExecutableHeapReserveSize;
}