[PATCH v2 20/22] ntdll: Use shared loader locking in LdrDisableThreadCalloutsForDll().
Paul Gofman
pgofman at codeweavers.com
Tue Oct 5 17:49:26 CDT 2021
Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
dlls/ntdll/loader.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c
index a044b9cce27..eaca55acf65 100644
--- a/dlls/ntdll/loader.c
+++ b/dlls/ntdll/loader.c
@@ -1897,13 +1897,16 @@ NTSTATUS WINAPI LdrDisableThreadCalloutsForDll(HMODULE hModule)
WINE_MODREF *wm;
NTSTATUS ret = STATUS_SUCCESS;
- lock_loader_exclusive();
+ lock_loader_shared();
wm = get_modref( hModule );
+
+ RtlAcquireSRWLockExclusive( &ldr_data_srw_lock );
if (!wm || wm->ldr.TlsIndex != -1)
ret = STATUS_DLL_NOT_FOUND;
else
wm->ldr.Flags |= LDR_NO_DLL_CALLS;
+ RtlReleaseSRWLockExclusive( &ldr_data_srw_lock );
unlock_loader();
--
2.31.1
More information about the wine-devel
mailing list