Zebediah Figura : ntdll: Handle unaligned SRW locks when using keyed events.
Module: wine Branch: master Commit: 28619e60358f75740df29d0ff0be80cbd0c9e10c URL: https://source.winehq.org/git/wine.git/?a=commit;h=28619e60358f75740df29d0ff... Author: Zebediah Figura <z.figura12(a)gmail.com> Date: Mon Apr 13 18:09:44 2020 -0500 ntdll: Handle unaligned SRW locks when using keyed events. Signed-off-by: Zebediah Figura <z.figura12(a)gmail.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/ntdll/sync.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dlls/ntdll/sync.c b/dlls/ntdll/sync.c index 5d1f5c3910..c0e1a30e2c 100644 --- a/dlls/ntdll/sync.c +++ b/dlls/ntdll/sync.c @@ -1985,11 +1985,11 @@ static NTSTATUS fast_release_srw_shared( RTL_SRWLOCK *lock ) #define SRWLOCK_RES_SHARED 0x00000001 #ifdef WORDS_BIGENDIAN -#define srwlock_key_exclusive(lock) (&lock->Ptr) -#define srwlock_key_shared(lock) ((void *)((char *)&lock->Ptr + 2)) +#define srwlock_key_exclusive(lock) ((void *)(((ULONG_PTR)&lock->Ptr + 1) & ~1)) +#define srwlock_key_shared(lock) ((void *)(((ULONG_PTR)&lock->Ptr + 3) & ~1)) #else -#define srwlock_key_exclusive(lock) ((void *)((char *)&lock->Ptr + 2)) -#define srwlock_key_shared(lock) (&lock->Ptr) +#define srwlock_key_exclusive(lock) ((void *)(((ULONG_PTR)&lock->Ptr + 3) & ~1)) +#define srwlock_key_shared(lock) ((void *)(((ULONG_PTR)&lock->Ptr + 1) & ~1)) #endif static inline void srwlock_check_invalid( unsigned int val )
participants (1)
-
Alexandre Julliard