|
|
@ -312,10 +312,22 @@ bool AppInit2() |
|
|
|
// Disable confusing "helpful" text message on abort, Ctrl-C
|
|
|
|
// Disable confusing "helpful" text message on abort, Ctrl-C
|
|
|
|
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); |
|
|
|
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#ifndef WIN32 |
|
|
|
#ifdef WIN32 |
|
|
|
umask(077); |
|
|
|
// 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 |
|
|
|
#endif |
|
|
|
#ifndef WIN32 |
|
|
|
#ifndef WIN32 |
|
|
|
|
|
|
|
umask(077); |
|
|
|
|
|
|
|
|
|
|
|
// Clean shutdown on SIGTERM
|
|
|
|
// Clean shutdown on SIGTERM
|
|
|
|
struct sigaction sa; |
|
|
|
struct sigaction sa; |
|
|
|
sa.sa_handler = HandleSIGTERM; |
|
|
|
sa.sa_handler = HandleSIGTERM; |
|
|
|