You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against b360cd67e8f7f8c01f09457bacb032fd4a248d0a
This commit is contained in:
@@ -1,43 +1,44 @@
|
||||
From 76e5668f6371a5e3fe8bc524fc25080e375fb680 Mon Sep 17 00:00:00 2001
|
||||
From 54e9832efd935277864c1faa0cb070676d2079a9 Mon Sep 17 00:00:00 2001
|
||||
From: "Olivier F. R. Dierick" <o.dierick@piezo-forte.be>
|
||||
Date: Tue, 19 Apr 2016 07:36:41 +0200
|
||||
Subject: [PATCH 3/3] kernel32: Make system DEP policy affect
|
||||
Subject: [PATCH] kernel32: Make system DEP policy affect
|
||||
GetProcessDEPPolicy().
|
||||
|
||||
---
|
||||
dlls/kernel32/process.c | 15 +++++++++++----
|
||||
1 file changed, 11 insertions(+), 4 deletions(-)
|
||||
dlls/kernel32/process.c | 18 +++++++++++++-----
|
||||
1 file changed, 13 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dlls/kernel32/process.c b/dlls/kernel32/process.c
|
||||
index 6bf31516ca..2446491b10 100644
|
||||
index 958b437cea..d7a444a314 100644
|
||||
--- a/dlls/kernel32/process.c
|
||||
+++ b/dlls/kernel32/process.c
|
||||
@@ -4629,14 +4629,21 @@ BOOL WINAPI GetProcessDEPPolicy(HANDLE process, LPDWORD flags, PBOOL permanent)
|
||||
if (flags)
|
||||
{
|
||||
*flags = 0;
|
||||
- if (dep_flags & MEM_EXECUTE_OPTION_DISABLE)
|
||||
- *flags |= PROCESS_DEP_ENABLE;
|
||||
- if (dep_flags & MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION)
|
||||
- *flags |= PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION;
|
||||
+ if (system_DEP_policy != AlwaysOff)
|
||||
+ {
|
||||
+ if (dep_flags & MEM_EXECUTE_OPTION_DISABLE || system_DEP_policy == AlwaysOn)
|
||||
+ *flags |= PROCESS_DEP_ENABLE;
|
||||
+ if (dep_flags & MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION)
|
||||
+ *flags |= PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION;
|
||||
+ }
|
||||
}
|
||||
|
||||
if (permanent)
|
||||
@@ -3904,13 +3904,21 @@ BOOL WINAPI GetProcessDEPPolicy(HANDLE process, LPDWORD flags, PBOOL permanent)
|
||||
if (flags)
|
||||
{
|
||||
*flags = 0;
|
||||
- if (dep_flags & MEM_EXECUTE_OPTION_DISABLE)
|
||||
- *flags |= PROCESS_DEP_ENABLE;
|
||||
- if (dep_flags & MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION)
|
||||
- *flags |= PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION;
|
||||
+ if (system_DEP_policy != AlwaysOff)
|
||||
+ {
|
||||
*permanent = (dep_flags & MEM_EXECUTE_OPTION_PERMANENT) != 0;
|
||||
+ if (system_DEP_policy == AlwaysOn || system_DEP_policy == AlwaysOff)
|
||||
+ *permanent = TRUE;
|
||||
+ if (dep_flags & MEM_EXECUTE_OPTION_DISABLE || system_DEP_policy == AlwaysOn)
|
||||
+ *flags |= PROCESS_DEP_ENABLE;
|
||||
+ if (dep_flags & MEM_EXECUTE_OPTION_DISABLE_THUNK_EMULATION)
|
||||
+ *flags |= PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION;
|
||||
+ }
|
||||
|
||||
}
|
||||
if (status) SetLastError( RtlNtStatusToDosError(status) );
|
||||
|
||||
- if (permanent) *permanent = (dep_flags & MEM_EXECUTE_OPTION_PERMANENT) != 0;
|
||||
+ if (permanent)
|
||||
+ {
|
||||
+ *permanent = (dep_flags & MEM_EXECUTE_OPTION_PERMANENT) != 0;
|
||||
+ if (system_DEP_policy == AlwaysOn || system_DEP_policy == AlwaysOff)
|
||||
+ *permanent = TRUE;
|
||||
+ }
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
--
|
||||
2.17.1
|
||||
2.23.0
|
||||
|
||||
|
Reference in New Issue
Block a user