Quellcode durchsuchen

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

........
r10958 | giulio | 2008-05-12 16:42:24 +0200 (lun, 12 mag 2008) | 2 lines

Prevent memory corruption by respecting DOS command line length limit (tests/test/targ1b doesn't crash the machine anymore)
........

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

giulio vor 17 Jahren
Ursprung
Commit
3c483e5487
1 geänderte Dateien mit 5 neuen und 0 gelöschten Zeilen
  1. 5 0
      rtl/go32v2/dos.pp

+ 5 - 0
rtl/go32v2/dos.pp

@@ -162,6 +162,9 @@ end;
                                --- Exec ---
 ******************************************************************************}
 
+const
+  DOS_MAX_COMMAND_LINE_LENGTH = 126;
+
 procedure exec(const path : pathstr;const comline : comstr);
 type
   realptr = packed record
@@ -214,6 +217,8 @@ var
 begin
 { create command line }
   c:=comline;
+  if length(c)>DOS_MAX_COMMAND_LINE_LENGTH then
+    c[0]:=chr(DOS_MAX_COMMAND_LINE_LENGTH);
 { create path }
   p:=path;
 { allow slash as backslash }