=?UTF-8?Q?Micha=C5=82=20Janiszewski=20?=: ntdll: Only set owned bits in RTL_BITMAP.

Alexandre Julliard julliard at winehq.org
Tue Jul 3 15:58:56 CDT 2018


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

Author: Michał Janiszewski <janisozaur at gmail.com>
Date:   Sun Jul  1 23:51:22 2018 +0200

ntdll: Only set owned bits in RTL_BITMAP.

Signed-off-by: Michał Janiszewski <janisozaur at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntdll/rtlbitmap.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/rtlbitmap.c b/dlls/ntdll/rtlbitmap.c
index 318f6fc..20108f5 100644
--- a/dlls/ntdll/rtlbitmap.c
+++ b/dlls/ntdll/rtlbitmap.c
@@ -156,8 +156,8 @@ VOID WINAPI RtlSetBits(PRTL_BITMAP lpBits, ULONG ulStart, ULONG ulCount)
       /* Set from the start bit, possibly into the next byte also */
       USHORT initialWord = NTDLL_maskBits[ulCount] << (ulStart & 7);
 
-      *lpOut++ |= (initialWord & 0xff);
-      *lpOut |= (initialWord >> 8);
+      *lpOut |= (initialWord & 0xff);
+      if (initialWord >> 8) lpOut[1] |= (initialWord >> 8);
       return;
     }
   }
@@ -217,8 +217,8 @@ VOID WINAPI RtlClearBits(PRTL_BITMAP lpBits, ULONG ulStart, ULONG ulCount)
       /* Clear from the start bit, possibly into the next byte also */
       USHORT initialWord = ~(NTDLL_maskBits[ulCount] << (ulStart & 7));
 
-      *lpOut++ &= (initialWord & 0xff);
-      *lpOut &= (initialWord >> 8);
+      *lpOut &= (initialWord & 0xff);
+      if ((initialWord >> 8) != 0xff) lpOut[1] &= (initialWord >> 8);
       return;
     }
   }




More information about the wine-cvs mailing list