diff options
| author | Wladimir J. van der Laan <[email protected]> | 2012-08-13 21:01:17 -0700 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2012-08-13 21:01:17 -0700 |
| commit | a55ed9d5bb89046acfd3ca2c0545707a76499684 (patch) | |
| tree | ed32cdca547a8e0603ec345d1b44bc276d12123a /src/init.cpp | |
| parent | Merge pull request #936 from luke-jr/gmp_bip (diff) | |
| parent | Bitcoin-Qt (Windows only): enable DEP for bitcoin-qt.exe (diff) | |
| download | discoin-a55ed9d5bb89046acfd3ca2c0545707a76499684.tar.xz discoin-a55ed9d5bb89046acfd3ca2c0545707a76499684.zip | |
Merge pull request #1614 from Diapolo/Qt_Win_enable_DEP
Bitcoin-Qt (Windows only): enable DEP for bitcoin-qt.exe
Diffstat (limited to 'src/init.cpp')
| -rw-r--r-- | src/init.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/init.cpp b/src/init.cpp index 3235bf583..2937643bc 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -312,10 +312,22 @@ bool AppInit2() // Disable confusing "helpful" text message on abort, Ctrl-C _set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); #endif -#ifndef WIN32 - umask(077); +#ifdef WIN32 + // Enable Data Execution Prevention (DEP) + // Minimum supported OS versions: WinXP SP3, WinVista >= SP1, Win Server 2008 + // A failure is non-critical and needs no further attention! +#ifndef PROCESS_DEP_ENABLE +// We define this here, because GCCs winbase.h limits this to _WIN32_WINNT >= 0x0601 (Windows 7), +// which is not correct. Can be removed, when GCCs winbase.h is fixed! +#define PROCESS_DEP_ENABLE 0x00000001 +#endif + typedef BOOL (WINAPI *PSETPROCDEPPOL)(DWORD); + PSETPROCDEPPOL setProcDEPPol = (PSETPROCDEPPOL)GetProcAddress(GetModuleHandleA("Kernel32.dll"), "SetProcessDEPPolicy"); + if (setProcDEPPol != NULL) setProcDEPPol(PROCESS_DEP_ENABLE); #endif #ifndef WIN32 + umask(077); + // Clean shutdown on SIGTERM struct sigaction sa; sa.sa_handler = HandleSIGTERM; |