瀏覽代碼

Merged revisions 7012 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk

........
r7012 | pierre | 2007-03-27 21:56:58 +0200 (Tue, 27 Mar 2007) | 1 line

* fix memory corruption in Setup_arguments
........

git-svn-id: branches/fixes_2_2@7016 -

pierre 18 年之前
父節點
當前提交
dbbe74d577
共有 1 個文件被更改,包括 4 次插入3 次删除
  1. 4 3
      rtl/go32v2/system.pp

+ 4 - 3
rtl/go32v2/system.pp

@@ -171,7 +171,7 @@ var
   useproxy : boolean;
   hp       : ppchar;
   doscmd   : string[129];  { Dos commandline copied from PSP, max is 128 chars +1 for terminating zero }
-  arglen,
+  arglen,cmdlen,
   count   : longint;
   argstart,
   pc,arg  : pchar;
@@ -231,12 +231,13 @@ begin
   move(dos_argv0^,argv[count]^,argv0len+1);
   inc(count);
   { setup cmdline variable }
-  cmdline:=Getmem(argv0len+length(doscmd)+2);
+  cmdlen:=argv0len+length(doscmd)+2;
+  cmdline:=Getmem(cmdlen);
   move(dos_argv0^,cmdline^,argv0len);
   cmdline[argv0len]:=' ';
   inc(argv0len);
   move(doscmd[1],cmdline[argv0len],length(doscmd));
-  cmdline[argv0len+length(doscmd)+1]:=#0;
+  cmdline[cmdlen-1]:=#0;
   { parse dos commandline }
   pc:=@doscmd[1];
   while pc^<>#0 do