请教一下: 利用setlength函数给动态数组斌值, 下面这样写代码会有安全隐患吗?
         (此代码用DLL HOOK另外一个进程,并读他的数据   Bag为全局动态数组)
================================procedure Load_Bag ;
var i, m, n: dword ;
begin
  try
  m := pdword(Pbag)^ ; //数组基址
  SetLength (Bag, 0);  //清空
  for i := 0 to 35 do
  begin
    n:=Pdword(m+i*4+$33c)^; //首址
    if n <> 0 then
    begin
      SetLength (Bag, Length(Bag)+1);
      Bag[High(bag)].Base := m + i*4 +$33c ;
      bag[High(bag)].Name := PChar(n+$58);    //bag[High(bag)].Name :Pchar  
      Bag[High(bag)].PCS := pdword(n+$4a0)^;
      Bag[High(bag)].Addr := n;
    end;
  end;
  except
  end;
end;