From f2645c26017591f819344d24dc0a88dc32dde6fd Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 13 Jan 2020 16:36:16 +0800 Subject: [PATCH 1/2] windows: Enable heap terminate-on-corruption This is default behavior from Windows 8 onwards, however we still support Windows 7, so it should make sense to explicitly enable this. More info: https://docs.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapsetinformation --- src/init.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/init.cpp b/src/init.cpp index dc0f2ce05c9..8ad32f4bdb0 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -879,6 +879,9 @@ bool AppInitBasicSetup() #ifdef WIN32 // Enable Data Execution Prevention (DEP) SetProcessDEPPolicy(PROCESS_DEP_ENABLE); + + // Enable heap terminate-on-corruption + HeapSetInformation(nullptr, HeapEnableTerminationOnCorruption, nullptr, 0); #endif if (!SetupNetworking()) From 3d5d7aad269c7afe7e36677d3e76c6579e1b8aba Mon Sep 17 00:00:00 2001 From: fanquake Date: Mon, 13 Jan 2020 16:40:50 +0800 Subject: [PATCH 2/2] windows: remove call to SetProcessDEPPolicy SetProcessDEPPolicy() is only supported by 32-bit Windows processes. On 64-bit Windows it fails with ERROR_NOT_SUPPORTED (DEP is always enabled on 64-bit). More info: https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setprocessdeppolicy --- src/init.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/init.cpp b/src/init.cpp index 8ad32f4bdb0..8848ce320dc 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -877,9 +877,6 @@ bool AppInitBasicSetup() _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); #endif #ifdef WIN32 - // Enable Data Execution Prevention (DEP) - SetProcessDEPPolicy(PROCESS_DEP_ENABLE); - // Enable heap terminate-on-corruption HeapSetInformation(nullptr, HeapEnableTerminationOnCorruption, nullptr, 0); #endif