mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 01:39:26 +02:00
Added length checking for string reading
This commit is contained in:
parent
c76f66e7f1
commit
9c5e9c2189
@ -1565,12 +1565,16 @@ implementation
|
|||||||
case pararesult^.deftype of
|
case pararesult^.deftype of
|
||||||
stringdef : begin
|
stringdef : begin
|
||||||
if doread then
|
if doread then
|
||||||
|
begin
|
||||||
|
{ push maximum string length }
|
||||||
|
push_int(pstringdef(pararesult)^.len);
|
||||||
case pstringdef(pararesult)^.string_typ of
|
case pstringdef(pararesult)^.string_typ of
|
||||||
shortstring: emitcall ('READ_TEXT_STRING',true);
|
shortstring: emitcall ('READ_TEXT_STRING',true);
|
||||||
ansistring : emitcall ('READ_TEXT_ANSISTRING',true);
|
ansistring : emitcall ('READ_TEXT_ANSISTRING',true);
|
||||||
longstring : emitcall ('READ_TEXT_LONGSTRING',true);
|
longstring : emitcall ('READ_TEXT_LONGSTRING',true);
|
||||||
widestring : emitcall ('READ_TEXT_ANSISTRING',true);
|
widestring : emitcall ('READ_TEXT_ANSISTRING',true);
|
||||||
end
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
Case pstringdef(Pararesult)^.string_typ of
|
Case pstringdef(Pararesult)^.string_typ of
|
||||||
shortstring: emitcall ('WRITE_TEXT_STRING',true);
|
shortstring: emitcall ('WRITE_TEXT_STRING',true);
|
||||||
@ -2264,7 +2268,10 @@ implementation
|
|||||||
end.
|
end.
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 1998-07-06 14:19:51 michael
|
Revision 1.8 1998-07-06 15:51:15 michael
|
||||||
|
Added length checking for string reading
|
||||||
|
|
||||||
|
Revision 1.7 1998/07/06 14:19:51 michael
|
||||||
+ Added calls for reading/writing ansistrings
|
+ Added calls for reading/writing ansistrings
|
||||||
|
|
||||||
Revision 1.6 1998/07/01 15:28:48 peter
|
Revision 1.6 1998/07/01 15:28:48 peter
|
||||||
|
@ -3553,11 +3553,24 @@ implementation
|
|||||||
end;
|
end;
|
||||||
case pararesult^.deftype of
|
case pararesult^.deftype of
|
||||||
stringdef : begin
|
stringdef : begin
|
||||||
if doread then
|
if doread then
|
||||||
emitcall('READ_TEXT_STRING',true)
|
begin
|
||||||
else
|
{ push maximum string length }
|
||||||
begin
|
push_int(pstringdef(pararesult)^.len);
|
||||||
emitcall('WRITE_TEXT_STRING',true);
|
case pstringdef(pararesult)^.string_typ of
|
||||||
|
shortstring: emitcall ('READ_TEXT_STRING',true);
|
||||||
|
ansistring : emitcall ('READ_TEXT_ANSISTRING',true);
|
||||||
|
longstring : emitcall ('READ_TEXT_LONGSTRING',true);
|
||||||
|
widestring : emitcall ('READ_TEXT_ANSISTRING',true);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
Case pstringdef(Pararesult)^.string_typ of
|
||||||
|
shortstring: emitcall ('WRITE_TEXT_STRING',true);
|
||||||
|
ansistring : emitcall ('WRITE_TEXT_ANSISTRING',true);
|
||||||
|
longstring : emitcall ('WRITE_TEXT_LONGSTRING',true);
|
||||||
|
widestring : emitcall ('WRITE_TEXT_ANSISTRING',true);
|
||||||
|
end;
|
||||||
{ungetiftemp(hp^.left^.location.reference);}
|
{ungetiftemp(hp^.left^.location.reference);}
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -5135,7 +5148,10 @@ end.
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.8 1998-06-12 10:32:22 pierre
|
Revision 1.9 1998-07-06 15:51:16 michael
|
||||||
|
Added length checking for string reading
|
||||||
|
|
||||||
|
Revision 1.8 1998/06/12 10:32:22 pierre
|
||||||
* column problem hopefully solved
|
* column problem hopefully solved
|
||||||
+ C vars declaration changed
|
+ C vars declaration changed
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user