diff --git a/reactos/lib/rtl/bitmap.c b/reactos/lib/rtl/bitmap.c index 1b6f40c32b8..2dda265d6f6 100644 --- a/reactos/lib/rtl/bitmap.c +++ b/reactos/lib/rtl/bitmap.c @@ -365,6 +365,11 @@ RtlAreBitsClear( IN ULONG StartingIndex, IN ULONG Length) { + /* Verify parameters */ + if ((StartingIndex + Length > BitMapHeader->SizeOfBitMap) || + (StartingIndex + Length <= StartingIndex)) + return FALSE; + return RtlpGetLengthOfRunClear(BitMapHeader, StartingIndex, Length) >= Length; } @@ -375,6 +380,11 @@ RtlAreBitsSet( IN ULONG StartingIndex, IN ULONG Length) { + /* Verify parameters */ + if ((StartingIndex + Length > BitMapHeader->SizeOfBitMap) || + (StartingIndex + Length <= StartingIndex)) + return FALSE; + return RtlpGetLengthOfRunSet(BitMapHeader, StartingIndex, Length) >= Length; }