Fill freed loader heap chunk with non-zero value (#12731)
authorJonghyun Park <parjong@gmail.com>
Mon, 31 Jul 2017 07:48:16 +0000 (16:48 +0900)
committerJan Kotas <jkotas@microsoft.com>
Mon, 31 Jul 2017 07:48:16 +0000 (09:48 +0200)
commit1c540c594cc55d8446086dcd979c48efa84e00a9
tree51c47945f71336974265801adcd7d3bd5dd90080
parent8c7d6b3d2b6955d05e7289a09755a25d252273b1
 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
13 files changed:
src/inc/loaderheap.h
src/utilcode/loaderheap.cpp
src/vm/amd64/cgenamd64.cpp
src/vm/amd64/cgencpu.h
src/vm/arm/cgencpu.h
src/vm/arm/stubs.cpp
src/vm/arm64/cgencpu.h
src/vm/arm64/stubs.cpp
src/vm/dllimportcallback.cpp
src/vm/dllimportcallback.h
src/vm/i386/cgencpu.h
src/vm/i386/cgenx86.cpp
src/vm/loaderallocator.cpp