Alexandre Julliard : ntdll:
Check the NX compatibility flag for every loaded module.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Dec 7 14:23:42 CST 2006
Module: wine
Branch: master
Commit: 7ae1b2897e3fe8fa10dff50d2e96d40040223bf4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7ae1b2897e3fe8fa10dff50d2e96d40040223bf4
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Dec 7 20:52:16 2006 +0100
ntdll: Check the NX compatibility flag for every loaded module.
---
dlls/ntdll/loader.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index 4d15779..23c6e3b 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -681,6 +681,12 @@ static WINE_MODREF *alloc_module( HMODUL
/* wait until init is called for inserting into this list */
wm->ldr.InInitializationOrderModuleList.Flink = NULL;
wm->ldr.InInitializationOrderModuleList.Blink = NULL;
+
+ if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
+ {
+ WARN( "disabling no-exec because of %s\n", debugstr_w(wm->ldr.BaseDllName.Buffer) );
+ VIRTUAL_SetForceExec( TRUE );
+ }
return wm;
}
@@ -2126,8 +2132,6 @@ void WINAPI LdrInitializeThunk( ULONG un
peb->ProcessParameters->ImagePathName = wm->ldr.FullDllName;
version_init( wm->ldr.FullDllName.Buffer );
- if (!(nt->OptionalHeader.DllCharacteristics & IMAGE_DLLCHARACTERISTICS_NX_COMPAT))
- VIRTUAL_SetForceExec( TRUE );
/* the main exe needs to be the first in the load order list */
RemoveEntryList( &wm->ldr.InLoadOrderModuleList );
More information about the wine-cvs
mailing list