Alexandre Julliard : ntdll: Set LDR_WINE_INTERNAL flag also for PE builtins.

Alexandre Julliard julliard at winehq.org
Mon May 20 15:50:45 CDT 2019


Module: wine
Branch: master
Commit: b8743f1f0b359de14e16d6f75595635e7205ddd1
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=b8743f1f0b359de14e16d6f75595635e7205ddd1

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Sun May 19 10:21:36 2019 +0200

ntdll: Set LDR_WINE_INTERNAL flag also for PE builtins.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/loader.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index c77f329..da41fdf 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -2147,6 +2147,7 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, const UNICODE_STRING *nt_nam
     wm->ino = st->st_ino;
     if (image_info->loader_flags) wm->ldr.Flags |= LDR_COR_IMAGE;
     if (image_info->image_flags & IMAGE_FLAGS_ComPlusILOnly) wm->ldr.Flags |= LDR_COR_ILONLY;
+    if (image_info->image_flags & IMAGE_FLAGS_WineBuiltin) wm->ldr.Flags |= LDR_WINE_INTERNAL;
 
     set_security_cookie( module, image_info->map_size );
 
@@ -3347,7 +3348,8 @@ static void free_modref( WINE_MODREF *wm )
 
     free_tls_slot( &wm->ldr );
     RtlReleaseActivationContext( wm->ldr.ActivationContext );
-    if (wm->ldr.Flags & LDR_WINE_INTERNAL) wine_dll_unload( wm->ldr.SectionHandle );
+    if ((wm->ldr.Flags & LDR_WINE_INTERNAL) && wm->ldr.SectionHandle)
+        wine_dll_unload( wm->ldr.SectionHandle );
     NtUnmapViewOfSection( NtCurrentProcess(), wm->ldr.BaseAddress );
     if (cached_modref == wm) cached_modref = NULL;
     RtlFreeUnicodeString( &wm->ldr.FullDllName );




More information about the wine-cvs mailing list