Explorar el Código

* Fix bug #38063, corner case in Remove() range checking

git-svn-id: trunk@47392 -
michael hace 4 años
padre
commit
4a38d1b34e
Se han modificado 1 ficheros con 1 adiciones y 1 borrados
  1. 1 1
      rtl/objpas/sysutils/syssb.inc

+ 1 - 1
rtl/objpas/sysutils/syssb.inc

@@ -532,7 +532,7 @@ begin
   CheckNegative(RemLength,'RemLength');
   CheckNegative(RemLength,'RemLength');
   CheckRange(StartIndex,0,Length);
   CheckRange(StartIndex,0,Length);
   MoveIndex:=StartIndex+RemLength;
   MoveIndex:=StartIndex+RemLength;
-  CheckRange(MoveIndex,0,Length-1);
+  CheckRange(MoveIndex,0,Length);
   if (Length-Moveindex)>0 then
   if (Length-Moveindex)>0 then
     Move(FData[MoveIndex],FData[StartIndex],(Length-MoveIndex)*SizeOf(SBChar));
     Move(FData[MoveIndex],FData[StartIndex],(Length-MoveIndex)*SizeOf(SBChar));
   Length:=Length-RemLength;
   Length:=Length-RemLength;