diff --git a/README.md b/README.md index 7ef202fe..eb1e73ed 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Included bugfixes and improvements * Fix for ConnectNamedPort return value in overlapped mode ([Wine Bug #16550](http://bugs.winehq.org/show_bug.cgi?id=16550)) * Fix for programs leaking wndproc slots ([Wine Bug #32451](http://bugs.winehq.org/show_bug.cgi?id=32451)) * Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](http://bugs.winehq.org/show_bug.cgi?id=35975)) -* Fix issue with invisible dragimages in ImageList ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761)) +* ~~Fix issue with invisible dragimages in ImageList~~ ([Wine Bug #36761](http://bugs.winehq.org/show_bug.cgi?id=36761)) * Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](http://bugs.winehq.org/show_bug.cgi?id=30155)) * Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](http://bugs.winehq.org/show_bug.cgi?id=36900)) * Fix unintentional leaks with ntdll internals @@ -79,7 +79,7 @@ Included bugfixes and improvements * Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](http://bugs.winehq.org/show_bug.cgi?id=23174)) * SO_CONNECT_TIME returns the appropriate time * Send WM_PAINT event during dialog creation ([Wine Bug #35652](http://bugs.winehq.org/show_bug.cgi?id=35652)) -* Set ldr.EntryPoint for main executable ([Wine Bug #33034](http://bugs.winehq.org/show_bug.cgi?id=33034)) +* ~~Set ldr.EntryPoint for main executable~~ ([Wine Bug #33034](http://bugs.winehq.org/show_bug.cgi?id=33034)) * Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](http://bugs.winehq.org/show_bug.cgi?id=34372)) * Support for DOS hidden/system file attributes ([Wine Bug #9158](http://bugs.winehq.org/show_bug.cgi?id=9158)) * Support for Dynamic DST (daylight saving time) information in registry diff --git a/debian/changelog b/debian/changelog index 008453ea..5ecb1d03 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,9 @@ wine-compholio (1.7.29) UNRELEASED; urgency=low * Updated DOS Attributes patch to better detect XATTR functions. * Added patch to support IDF_CHECKFIRST in SetupPromptForDisk. + * Removed patch to fix issues with drag image in ImageLists (accepted upstream). + * Removed patch to set ldr.EntryPoint for main executable (accepted upstream). + * Partially removed patches for WRITECOPY memory protection (accepted upstream). -- Sebastian Lackner Mon, 06 Oct 2014 01:02:37 +0200 wine-compholio (1.7.28) unstable; urgency=low diff --git a/patches/Makefile b/patches/Makefile index 28aac842..6ecfa2fd 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -23,7 +23,6 @@ PATCHLIST := \ Miscellaneous.ok \ Pipelight.ok \ atl-IOCS_Property.ok \ - comctl32-ImageList.ok \ comctl32-LoadIconMetric.ok \ configure-Absolute_RPATH.ok \ configure-Detect_Gnutls.ok \ @@ -51,7 +50,6 @@ PATCHLIST := \ ntdll-NtQuerySection.ok \ ntdll-Pipe_SpecialCharacters.ok \ ntdll-WRITECOPY.ok \ - ntdll-loader_EntryPoint.ok \ ntoskrnl-Irp_Status.ok \ quartz-MediaSeeking_Positions.ok \ riched20-IText_Interface.ok \ @@ -239,24 +237,6 @@ atl-IOCS_Property.ok: echo '+ { "atl-IOCS_Property", "Qian Hong", "Store IOCS data in a property instead of GWLP_USERDATA." },'; \ ) > atl-IOCS_Property.ok -# Patchset comctl32-ImageList -# | -# | Included patches: -# | * Fix issue that dragimage in ImageList only works for first four elements. [by Sebastian Lackner] -# | -# | This patchset fixes the following Wine bugs: -# | * [#36761] Fix issue with invisible dragimages in ImageList -# | -# | Modified files: -# | * dlls/comctl32/imagelist.c -# | -.INTERMEDIATE: comctl32-ImageList.ok -comctl32-ImageList.ok: - $(call APPLY_FILE,comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch) - @( \ - echo '+ { "comctl32-ImageList", "Sebastian Lackner", "Fix issue that dragimage in ImageList only works for first four elements." },'; \ - ) > comctl32-ImageList.ok - # Patchset comctl32-LoadIconMetric # | # | Included patches: @@ -749,7 +729,7 @@ ntdll-Pipe_SpecialCharacters.ok: # | * [#29384] Voobly expects correct handling of WRITECOPY memory protection # | # | Modified files: -# | * dlls/advapi32/crypt.c, dlls/kernel32/tests/virtual.c, dlls/ntdll/loader.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/server.c, +# | * dlls/advapi32/crypt.c, dlls/kernel32/tests/virtual.c, dlls/ntdll/ntdll_misc.h, dlls/ntdll/server.c, # | dlls/ntdll/signal_arm.c, dlls/ntdll/signal_arm64.c, dlls/ntdll/signal_i386.c, dlls/ntdll/signal_powerpc.c, # | dlls/ntdll/signal_x86_64.c, dlls/ntdll/thread.c, dlls/ntdll/virtual.c # | @@ -757,34 +737,13 @@ ntdll-Pipe_SpecialCharacters.ok: ntdll-WRITECOPY.ok: $(call APPLY_FILE,ntdll-WRITECOPY/0001-ntdll-Trigger-write-watches-before-passing-userdata-.patch) $(call APPLY_FILE,ntdll-WRITECOPY/0002-advapi-Trigger-write-watches-before-passing-userdata.patch) - $(call APPLY_FILE,ntdll-WRITECOPY/0003-ntdll-Fix-handling-of-page-fault-if-a-guard-page-and.patch) - $(call APPLY_FILE,ntdll-WRITECOPY/0004-ntdll-Wait-until-builtin-dlls-are-unloaded-before-re.patch) - $(call APPLY_FILE,ntdll-WRITECOPY/0005-ntdll-Setup-a-temporary-signal-handler-during-proces.patch) - $(call APPLY_FILE,ntdll-WRITECOPY/0006-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch) - $(call APPLY_FILE,ntdll-WRITECOPY/0007-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch) + $(call APPLY_FILE,ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch) + $(call APPLY_FILE,ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch) + $(call APPLY_FILE,ntdll-WRITECOPY/0005-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch) @( \ echo '+ { "ntdll-WRITECOPY", "Michael Müller", "Change WRITECOPY memory protection to WRITE on first write. [rev 3]" },'; \ ) > ntdll-WRITECOPY.ok -# Patchset ntdll-loader_EntryPoint -# | -# | Included patches: -# | * Set ldr.EntryPoint for main executable. [by Sebastian Lackner] -# | -# | This patchset fixes the following Wine bugs: -# | * [#33034] Set ldr.EntryPoint for main executable -# | -# | Modified files: -# | * dlls/kernel32/tests/module.c, dlls/ntdll/loader.c -# | -.INTERMEDIATE: ntdll-loader_EntryPoint.ok -ntdll-loader_EntryPoint.ok: - $(call APPLY_FILE,ntdll-loader_EntryPoint/0001-kernel32-tests-Add-tests-for-K32GetModuleInformation.patch) - $(call APPLY_FILE,ntdll-loader_EntryPoint/0002-ntdll-Set-ldr.EntryPoint-for-main-executable.-resend.patch) - @( \ - echo '+ { "ntdll-loader_EntryPoint", "Sebastian Lackner", "Set ldr.EntryPoint for main executable." },'; \ - ) > ntdll-loader_EntryPoint.ok - # Patchset ntoskrnl-Irp_Status # | # | Included patches: diff --git a/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch b/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch deleted file mode 100644 index cb7de7e2..00000000 --- a/patches/comctl32-ImageList/0001-comctl32-Fix-issue-that-dragimage-in-ImageList-only-.patch +++ /dev/null @@ -1,42 +0,0 @@ -From a79d771501ec85da65e27234972807364e1b29db Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Mon, 18 Aug 2014 00:50:41 +0200 -Subject: comctl32: Fix issue that dragimage in ImageList only works for first - four elements. - -Patch by ocean04 [at] suomi24 [dot] fi, provided at Wine bug #36761. ---- - dlls/comctl32/imagelist.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/dlls/comctl32/imagelist.c b/dlls/comctl32/imagelist.c -index 645068d..f15a0a9 100644 ---- a/dlls/comctl32/imagelist.c -+++ b/dlls/comctl32/imagelist.c -@@ -599,6 +599,7 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack, - INT dxHotspot, INT dyHotspot) - { - INT cx, cy; -+ POINT ptSrc; - - TRACE("(himlTrack=%p iTrack=%d dx=%d dy=%d)\n", himlTrack, iTrack, - dxHotspot, dyHotspot); -@@ -620,12 +621,13 @@ ImageList_BeginDrag (HIMAGELIST himlTrack, INT iTrack, - - InternalDrag.dxHotspot = dxHotspot; - InternalDrag.dyHotspot = dyHotspot; -+ imagelist_point_from_index( himlTrack, iTrack, &ptSrc ); - - /* copy image */ -- BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, iTrack * cx, 0, SRCCOPY); -+ BitBlt (InternalDrag.himl->hdcImage, 0, 0, cx, cy, himlTrack->hdcImage, ptSrc.x, ptSrc.y, SRCCOPY); - - /* copy mask */ -- BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, iTrack * cx, 0, SRCCOPY); -+ BitBlt (InternalDrag.himl->hdcMask, 0, 0, cx, cy, himlTrack->hdcMask, ptSrc.x, ptSrc.y, SRCCOPY); - - InternalDrag.himl->cCurImage = 1; - --- -1.7.9.5 - diff --git a/patches/comctl32-ImageList/definition b/patches/comctl32-ImageList/definition deleted file mode 100644 index b5e6f19e..00000000 --- a/patches/comctl32-ImageList/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Sebastian Lackner -Subject: Fix issue that dragimage in ImageList only works for first four elements. -Revision: 1 -Fixes: [36761] Fix issue with invisible dragimages in ImageList diff --git a/patches/ntdll-WRITECOPY/0003-ntdll-Fix-handling-of-page-fault-if-a-guard-page-and.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Fix-handling-of-page-fault-if-a-guard-page-and.patch deleted file mode 100644 index 5af22dc6..00000000 --- a/patches/ntdll-WRITECOPY/0003-ntdll-Fix-handling-of-page-fault-if-a-guard-page-and.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9adae8afba3818e91532cc84cdfe350d27aa0434 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 4 Oct 2014 02:48:16 +0200 -Subject: ntdll: Fix handling of page fault if a guard page and write watch is - triggered at the same time. - ---- - dlls/ntdll/virtual.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c -index 4819d2d..f8a5dd3 100644 ---- a/dlls/ntdll/virtual.c -+++ b/dlls/ntdll/virtual.c -@@ -1522,11 +1522,6 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err ) - { - void *page = ROUND_ADDR( addr, page_mask ); - BYTE *vprot = &view->prot[((const char *)page - (const char *)view->base) >> page_shift]; -- if (*vprot & VPROT_GUARD) -- { -- VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD ); -- ret = STATUS_GUARD_PAGE_VIOLATION; -- } - if ((err & EXCEPTION_WRITE_FAULT) && (view->protect & VPROT_WRITEWATCH)) - { - if (*vprot & VPROT_WRITEWATCH) -@@ -1537,6 +1532,11 @@ NTSTATUS virtual_handle_fault( LPCVOID addr, DWORD err ) - /* ignore fault if page is writable now */ - if (VIRTUAL_GetUnixProt( *vprot ) & PROT_WRITE) ret = STATUS_SUCCESS; - } -+ if (*vprot & VPROT_GUARD) -+ { -+ VIRTUAL_SetProt( view, page, page_size, *vprot & ~VPROT_GUARD ); -+ ret = STATUS_GUARD_PAGE_VIOLATION; -+ } - } - server_leave_uninterrupted_section( &csVirtual, &sigset ); - return ret; --- -2.1.1 - diff --git a/patches/ntdll-WRITECOPY/0005-ntdll-Setup-a-temporary-signal-handler-during-proces.patch b/patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch similarity index 100% rename from patches/ntdll-WRITECOPY/0005-ntdll-Setup-a-temporary-signal-handler-during-proces.patch rename to patches/ntdll-WRITECOPY/0003-ntdll-Setup-a-temporary-signal-handler-during-proces.patch diff --git a/patches/ntdll-WRITECOPY/0006-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch b/patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch similarity index 100% rename from patches/ntdll-WRITECOPY/0006-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch rename to patches/ntdll-WRITECOPY/0004-ntdll-Properly-handle-PAGE_WRITECOPY-protection.patch diff --git a/patches/ntdll-WRITECOPY/0004-ntdll-Wait-until-builtin-dlls-are-unloaded-before-re.patch b/patches/ntdll-WRITECOPY/0004-ntdll-Wait-until-builtin-dlls-are-unloaded-before-re.patch deleted file mode 100644 index 683917f9..00000000 --- a/patches/ntdll-WRITECOPY/0004-ntdll-Wait-until-builtin-dlls-are-unloaded-before-re.patch +++ /dev/null @@ -1,27 +0,0 @@ -From da712e7425c012b55cda572e7e57545b7cd86314 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -Date: Sat, 4 Oct 2014 02:51:51 +0200 -Subject: ntdll: Wait until builtin dlls are unloaded before releasing the - virtual view. - ---- - dlls/ntdll/loader.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 18ae29c..f0fb1f2 100644 ---- a/dlls/ntdll/loader.c -+++ b/dlls/ntdll/loader.c -@@ -2641,8 +2641,8 @@ static void free_modref( WINE_MODREF *wm ) - - free_tls_slot( &wm->ldr ); - RtlReleaseActivationContext( wm->ldr.ActivationContext ); -- NtUnmapViewOfSection( NtCurrentProcess(), wm->ldr.BaseAddress ); - if (wm->ldr.Flags & LDR_WINE_INTERNAL) wine_dll_unload( wm->ldr.SectionHandle ); -+ NtUnmapViewOfSection( NtCurrentProcess(), wm->ldr.BaseAddress ); - if (cached_modref == wm) cached_modref = NULL; - RtlFreeUnicodeString( &wm->ldr.FullDllName ); - RtlFreeHeap( GetProcessHeap(), 0, wm->deps ); --- -2.1.1 - diff --git a/patches/ntdll-WRITECOPY/0007-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch b/patches/ntdll-WRITECOPY/0005-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch similarity index 100% rename from patches/ntdll-WRITECOPY/0007-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch rename to patches/ntdll-WRITECOPY/0005-ntdll-Only-enable-true-WRITECOPY-protection-when-a-s.patch diff --git a/patches/ntdll-loader_EntryPoint/0001-kernel32-tests-Add-tests-for-K32GetModuleInformation.patch b/patches/ntdll-loader_EntryPoint/0001-kernel32-tests-Add-tests-for-K32GetModuleInformation.patch deleted file mode 100644 index 0cc081ab..00000000 --- a/patches/ntdll-loader_EntryPoint/0001-kernel32-tests-Add-tests-for-K32GetModuleInformation.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 7e25c6c4537604eab67b3b62a97a23a3057b59c0 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Wed, 1 Oct 2014 17:35:22 +0200 -Subject: kernel32/tests: Add tests for K32GetModuleInformation. - -Test to confirm AFs analysis from bug 33034. ---- - dlls/kernel32/tests/module.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 44 insertions(+) - -diff --git a/dlls/kernel32/tests/module.c b/dlls/kernel32/tests/module.c -index 0d140a4..fb0130d 100644 ---- a/dlls/kernel32/tests/module.c -+++ b/dlls/kernel32/tests/module.c -@@ -20,12 +20,14 @@ - - #include "wine/test.h" - #include -+#include - - static DWORD (WINAPI *pGetDllDirectoryA)(DWORD,LPSTR); - static DWORD (WINAPI *pGetDllDirectoryW)(DWORD,LPWSTR); - static BOOL (WINAPI *pSetDllDirectoryA)(LPCSTR); - static BOOL (WINAPI *pGetModuleHandleExA)(DWORD,LPCSTR,HMODULE*); - static BOOL (WINAPI *pGetModuleHandleExW)(DWORD,LPCWSTR,HMODULE*); -+static BOOL (WINAPI *pK32GetModuleInformation)(HANDLE,HMODULE,MODULEINFO*,DWORD); - - static BOOL is_unicode_enabled = TRUE; - -@@ -514,7 +516,20 @@ static void init_pointers(void) - MAKEFUNC(SetDllDirectoryA); - MAKEFUNC(GetModuleHandleExA); - MAKEFUNC(GetModuleHandleExW); -+ MAKEFUNC(K32GetModuleInformation); - #undef MAKEFUNC -+ -+ /* not all Windows versions export this in kernel32 */ -+ if (!pK32GetModuleInformation) -+ { -+ HMODULE hPsapi = LoadLibraryA("psapi.dll"); -+ if (hPsapi) -+ { -+ pK32GetModuleInformation = (void *)GetProcAddress(hPsapi, "GetModuleInformation"); -+ if (!pK32GetModuleInformation) FreeLibrary(hPsapi); -+ } -+ } -+ - } - - static void testGetModuleHandleEx(void) -@@ -696,6 +711,34 @@ static void testGetModuleHandleEx(void) - FreeLibrary( mod_kernel32 ); - } - -+static void testK32GetModuleInformation(void) -+{ -+ MODULEINFO info; -+ HMODULE mod; -+ BOOL ret; -+ -+ if (!pK32GetModuleInformation) -+ { -+ win_skip("K32GetModuleInformation not available\n"); -+ return; -+ } -+ -+ mod = GetModuleHandleA(NULL); -+ memset(&info, 0xAA, sizeof(info)); -+ ret = pK32GetModuleInformation(GetCurrentProcess(), mod, &info, sizeof(info)); -+ ok(ret, "K32GetModuleInformation failed for main module\n"); -+ ok(info.lpBaseOfDll == mod, "Wrong info.lpBaseOfDll = %p, expected %p\n", info.lpBaseOfDll, mod); -+ todo_wine -+ ok(info.EntryPoint != NULL, "Expected nonzero entrypoint\n"); -+ -+ mod = GetModuleHandleA("kernel32.dll"); -+ memset(&info, 0xAA, sizeof(info)); -+ ret = pK32GetModuleInformation(GetCurrentProcess(), mod, &info, sizeof(info)); -+ ok(ret, "K32GetModuleInformation failed for kernel32 module\n"); -+ ok(info.lpBaseOfDll == mod, "Wrong info.lpBaseOfDll = %p, expected %p\n", info.lpBaseOfDll, mod); -+ ok(info.EntryPoint != NULL, "Expected nonzero entrypoint\n"); -+} -+ - START_TEST(module) - { - WCHAR filenameW[MAX_PATH]; -@@ -724,4 +767,5 @@ START_TEST(module) - testGetProcAddress_Wrong(); - testLoadLibraryEx(); - testGetModuleHandleEx(); -+ testK32GetModuleInformation(); - } --- -2.1.1 - diff --git a/patches/ntdll-loader_EntryPoint/0002-ntdll-Set-ldr.EntryPoint-for-main-executable.-resend.patch b/patches/ntdll-loader_EntryPoint/0002-ntdll-Set-ldr.EntryPoint-for-main-executable.-resend.patch deleted file mode 100644 index 0c6f376f..00000000 --- a/patches/ntdll-loader_EntryPoint/0002-ntdll-Set-ldr.EntryPoint-for-main-executable.-resend.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 0819075c75d740657873e01d35e8673070c49442 Mon Sep 17 00:00:00 2001 -From: Sebastian Lackner -Date: Wed, 1 Oct 2014 17:35:28 +0200 -Subject: ntdll: Set ldr.EntryPoint for main executable. (resend) - -Fixes: https://bugs.winehq.org/show_bug.cgi?id=33034 -No code change (besides the removed todo_wine). ---- - dlls/kernel32/tests/module.c | 1 - - dlls/ntdll/loader.c | 7 ++++--- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/dlls/kernel32/tests/module.c b/dlls/kernel32/tests/module.c -index fb0130d..56b6494 100644 ---- a/dlls/kernel32/tests/module.c -+++ b/dlls/kernel32/tests/module.c -@@ -728,7 +728,6 @@ static void testK32GetModuleInformation(void) - ret = pK32GetModuleInformation(GetCurrentProcess(), mod, &info, sizeof(info)); - ok(ret, "K32GetModuleInformation failed for main module\n"); - ok(info.lpBaseOfDll == mod, "Wrong info.lpBaseOfDll = %p, expected %p\n", info.lpBaseOfDll, mod); -- todo_wine - ok(info.EntryPoint != NULL, "Expected nonzero entrypoint\n"); - - mod = GetModuleHandleA("kernel32.dll"); -diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c -index 18ae29c..3c2fc56 100644 ---- a/dlls/ntdll/loader.c -+++ b/dlls/ntdll/loader.c -@@ -934,9 +934,10 @@ static WINE_MODREF *alloc_module( HMODULE hModule, LPCWSTR filename ) - else p = wm->ldr.FullDllName.Buffer; - RtlInitUnicodeString( &wm->ldr.BaseDllName, p ); - -- if ((nt->FileHeader.Characteristics & IMAGE_FILE_DLL) && !is_dll_native_subsystem( hModule, nt, p )) -+ if (!(nt->FileHeader.Characteristics & IMAGE_FILE_DLL) || !is_dll_native_subsystem( hModule, nt, p )) - { -- wm->ldr.Flags |= LDR_IMAGE_IS_DLL; -+ if (nt->FileHeader.Characteristics & IMAGE_FILE_DLL) -+ wm->ldr.Flags |= LDR_IMAGE_IS_DLL; - if (nt->OptionalHeader.AddressOfEntryPoint) - wm->ldr.EntryPoint = (char *)hModule + nt->OptionalHeader.AddressOfEntryPoint; - } -@@ -1062,7 +1063,7 @@ static NTSTATUS MODULE_InitDLL( WINE_MODREF *wm, UINT reason, LPVOID lpReserved - - if (wm->ldr.Flags & LDR_DONT_RESOLVE_REFS) return STATUS_SUCCESS; - if (wm->ldr.TlsIndex != -1) call_tls_callbacks( wm->ldr.BaseAddress, reason ); -- if (!entry) return STATUS_SUCCESS; -+ if (!entry || !(wm->ldr.Flags & LDR_IMAGE_IS_DLL)) return STATUS_SUCCESS; - - if (TRACE_ON(relay)) - { --- -2.1.1 - diff --git a/patches/ntdll-loader_EntryPoint/definition b/patches/ntdll-loader_EntryPoint/definition deleted file mode 100644 index 5fffd85d..00000000 --- a/patches/ntdll-loader_EntryPoint/definition +++ /dev/null @@ -1,4 +0,0 @@ -Author: Sebastian Lackner -Subject: Set ldr.EntryPoint for main executable. -Revision: 1 -Fixes: [33034] Set ldr.EntryPoint for main executable