From 4f74de5b366275ea522e269d29d2011a7b153e9e Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Wed, 24 Dec 2008 06:04:25 +0400 Subject: [PATCH] ntdll: Fix buffer overread in RtlNumberOfSetBits. --- dlls/ntdll/rtlbitmap.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dlls/ntdll/rtlbitmap.c b/dlls/ntdll/rtlbitmap.c index ef033b2284..806e0e80da 100644 --- a/dlls/ntdll/rtlbitmap.c +++ b/dlls/ntdll/rtlbitmap.c @@ -555,9 +555,12 @@ ULONG WINAPI RtlNumberOfSetBits(PCRTL_BITMAP lpBits) lpOut++; } - bMasked = *lpOut & NTDLL_maskBits[ulRemainder]; - ulSet += NTDLL_nibbleBitCount[bMasked >> 4]; - ulSet += NTDLL_nibbleBitCount[bMasked & 0xf]; + if (ulRemainder) + { + bMasked = *lpOut & NTDLL_maskBits[ulRemainder]; + ulSet += NTDLL_nibbleBitCount[bMasked >> 4]; + ulSet += NTDLL_nibbleBitCount[bMasked & 0xf]; + } } return ulSet; } -- 2.33.8