diff options
author | Jonghyun Park <parjong@gmail.com> | 2017-07-31 16:48:16 +0900 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2017-07-31 09:48:16 +0200 |
commit | 1c540c594cc55d8446086dcd979c48efa84e00a9 (patch) | |
tree | 51c47945f71336974265801adcd7d3bd5dd90080 /src/vm/loaderallocator.cpp | |
parent | 8c7d6b3d2b6955d05e7289a09755a25d252273b1 (diff) | |
download | coreclr-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.cpp | 4 |
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; } |