mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-04 05:26:33 +02:00
* fix for SIGSEGV in Exec without command line parameters revealed in discussion for #26160
git-svn-id: trunk@27804 -
This commit is contained in:
parent
bb0a670e9e
commit
cedf009d3c
@ -436,8 +436,7 @@ begin
|
|||||||
seg_move (get_ds, PtrInt (ExecBufPtr), DosMemSelector, TB, Pred (Current_Dos_Buffer_Pos));
|
seg_move (get_ds, PtrInt (ExecBufPtr), DosMemSelector, TB, Pred (Current_Dos_Buffer_Pos));
|
||||||
{ allocate FCB see dosexec code }
|
{ allocate FCB see dosexec code }
|
||||||
arg_ofs:=1;
|
arg_ofs:=1;
|
||||||
while (c[arg_ofs] in [' ',#9]) and
|
while (arg_ofs<length(c)) and (c[arg_ofs] in [' ',#9]) do
|
||||||
(arg_ofs<length(c)) do
|
|
||||||
inc(arg_ofs);
|
inc(arg_ofs);
|
||||||
dosregs.ax:=$2901;
|
dosregs.ax:=$2901;
|
||||||
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
||||||
|
@ -237,8 +237,7 @@ begin
|
|||||||
GetShortName(p);
|
GetShortName(p);
|
||||||
{ allocate FCB see dosexec code }
|
{ allocate FCB see dosexec code }
|
||||||
arg_ofs:=1;
|
arg_ofs:=1;
|
||||||
while (c[arg_ofs] in [' ',#9]) and
|
while (arg_ofs<length(c)) and (c[arg_ofs] in [' ',#9]) do
|
||||||
(arg_ofs<length(c)) do
|
|
||||||
inc(arg_ofs);
|
inc(arg_ofs);
|
||||||
dosregs.ax:=$2901;
|
dosregs.ax:=$2901;
|
||||||
dosregs.ds:=Seg(c[arg_ofs]);
|
dosregs.ds:=Seg(c[arg_ofs]);
|
||||||
|
@ -228,7 +228,7 @@ begin
|
|||||||
la_e:=la_e+16;
|
la_e:=la_e+16;
|
||||||
{ allocate FCB see dosexec code }
|
{ allocate FCB see dosexec code }
|
||||||
arg_ofs:=1;
|
arg_ofs:=1;
|
||||||
while (c[arg_ofs] in [' ',#9]) do
|
while (arg_ofs < Length (C)) and (c[arg_ofs] in [' ',#9]) do
|
||||||
inc(arg_ofs);
|
inc(arg_ofs);
|
||||||
dosregs.ax:=$2901;
|
dosregs.ax:=$2901;
|
||||||
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
||||||
@ -239,12 +239,12 @@ begin
|
|||||||
{ allocate second FCB see dosexec code }
|
{ allocate second FCB see dosexec code }
|
||||||
repeat
|
repeat
|
||||||
inc(arg_ofs);
|
inc(arg_ofs);
|
||||||
until (c[arg_ofs] in [' ',#9,#13]);
|
until (Arg_Ofs >= Length (C)) or (c[arg_ofs] in [' ',#9,#13]);
|
||||||
if c[arg_ofs]<>#13 then
|
if (c[arg_ofs]<>#13) and (Arg_Ofs < Length (C)) then
|
||||||
begin
|
begin
|
||||||
repeat
|
repeat
|
||||||
inc(arg_ofs);
|
inc(arg_ofs);
|
||||||
until not (c[arg_ofs] in [' ',#9]);
|
until (Arg_Ofs > Length (C)) or not (c[arg_ofs] in [' ',#9]);
|
||||||
end;
|
end;
|
||||||
dosregs.ax:=$2901;
|
dosregs.ax:=$2901;
|
||||||
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
dosregs.ds:=(la_c+arg_ofs) shr 4;
|
||||||
|
Loading…
Reference in New Issue
Block a user