Author: tfaber
Date: Tue Apr 8 21:04:47 2014
New Revision: 62691
URL:
http://svn.reactos.org/svn/reactos?rev=62691&view=rev
Log:
[RTL]
- Fix apitest crashes in RtlFindClearBits/RtlFindSetBits
Modified:
trunk/reactos/lib/rtl/bitmap.c
Modified: trunk/reactos/lib/rtl/bitmap.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/rtl/bitmap.c?rev=62691…
==============================================================================
--- trunk/reactos/lib/rtl/bitmap.c [iso-8859-1] (original)
+++ trunk/reactos/lib/rtl/bitmap.c [iso-8859-1] Tue Apr 8 21:04:47 2014
@@ -101,6 +101,11 @@
BITMAP_INDEX Value, BitPos, Length;
PBITMAP_BUFFER Buffer, MaxBuffer;
+ /* If we are already at the end, the length of the run is zero */
+ ASSERT(StartingIndex <= BitMapHeader->SizeOfBitMap);
+ if (StartingIndex >= BitMapHeader->SizeOfBitMap)
+ return 0;
+
/* Calculate positions */
Buffer = BitMapHeader->Buffer + StartingIndex / _BITCOUNT;
BitPos = StartingIndex & (_BITCOUNT - 1);
@@ -149,6 +154,11 @@
{
BITMAP_INDEX InvValue, BitPos, Length;
PBITMAP_BUFFER Buffer, MaxBuffer;
+
+ /* If we are already at the end, the length of the run is zero */
+ ASSERT(StartingIndex <= BitMapHeader->SizeOfBitMap);
+ if (StartingIndex >= BitMapHeader->SizeOfBitMap)
+ return 0;
/* Calculate positions */
Buffer = BitMapHeader->Buffer + StartingIndex / _BITCOUNT;