mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 21:09:11 +02:00
* fix memory corruption in Setup_arguments
git-svn-id: trunk@7012 -
This commit is contained in:
parent
fdc692a5ca
commit
44c567cf46
@ -171,7 +171,7 @@ var
|
|||||||
useproxy : boolean;
|
useproxy : boolean;
|
||||||
hp : ppchar;
|
hp : ppchar;
|
||||||
doscmd : string[129]; { Dos commandline copied from PSP, max is 128 chars +1 for terminating zero }
|
doscmd : string[129]; { Dos commandline copied from PSP, max is 128 chars +1 for terminating zero }
|
||||||
arglen,
|
arglen,cmdlen,
|
||||||
count : longint;
|
count : longint;
|
||||||
argstart,
|
argstart,
|
||||||
pc,arg : pchar;
|
pc,arg : pchar;
|
||||||
@ -231,12 +231,13 @@ begin
|
|||||||
move(dos_argv0^,argv[count]^,argv0len+1);
|
move(dos_argv0^,argv[count]^,argv0len+1);
|
||||||
inc(count);
|
inc(count);
|
||||||
{ setup cmdline variable }
|
{ setup cmdline variable }
|
||||||
cmdline:=Getmem(argv0len+length(doscmd)+2);
|
cmdlen:=argv0len+length(doscmd)+2;
|
||||||
|
cmdline:=Getmem(cmdlen);
|
||||||
move(dos_argv0^,cmdline^,argv0len);
|
move(dos_argv0^,cmdline^,argv0len);
|
||||||
cmdline[argv0len]:=' ';
|
cmdline[argv0len]:=' ';
|
||||||
inc(argv0len);
|
inc(argv0len);
|
||||||
move(doscmd[1],cmdline[argv0len],length(doscmd));
|
move(doscmd[1],cmdline[argv0len],length(doscmd));
|
||||||
cmdline[argv0len+length(doscmd)+1]:=#0;
|
cmdline[cmdlen-1]:=#0;
|
||||||
{ parse dos commandline }
|
{ parse dos commandline }
|
||||||
pc:=@doscmd[1];
|
pc:=@doscmd[1];
|
||||||
while pc^<>#0 do
|
while pc^<>#0 do
|
||||||
|
Loading…
Reference in New Issue
Block a user