ソースを参照

Merge pull request #120 from VasiliyRyabtsev/fix/array-resize

Raise error for negative size in array_resize()
Alberto Demichelis 8 年 前
コミット
938655a90b
1 ファイル変更5 行追加1 行削除
  1. 5 1
      squirrel/sqbaselib.cpp

+ 5 - 1
squirrel/sqbaselib.cpp

@@ -542,9 +542,13 @@ static SQInteger array_resize(HSQUIRRELVM v)
     SQObject &nsize = stack_get(v, 2);
     SQObjectPtr fill;
     if(sq_isnumeric(nsize)) {
+        SQInteger sz = tointeger(nsize);
+        if (sz<0)
+          return sq_throwerror(v, _SC("resizing to negative length"));
+
         if(sq_gettop(v) > 2)
             fill = stack_get(v, 3);
-        _array(o)->Resize(tointeger(nsize),fill);
+        _array(o)->Resize(sz,fill);
         return 0;
     }
     return sq_throwerror(v, _SC("size must be a number"));