浏览代码

Check bounds in SetLength(shortstring).

Rika Ichinose 1 年之前
父节点
当前提交
fc3d71bba3
共有 1 个文件被更改,包括 4 次插入2 次删除
  1. 4 2
      rtl/inc/sstrings.inc

+ 4 - 2
rtl/inc/sstrings.inc

@@ -19,8 +19,10 @@
 {$define FPC_HAS_SHORTSTR_SETLENGTH}
 procedure fpc_Shortstr_SetLength(var s:shortstring;len:SizeInt);[Public,Alias : 'FPC_SHORTSTR_SETLENGTH']; compilerproc;
 begin
-  if Len>255 then
-   Len:=255;
+  if len<0 then
+    len:=0;
+  if len>high(s) then
+    len:=high(s);
   s[0]:=chr(len);
 end;
 {$endif FPC_HAS_SHORTSTR_SETLENGTH}