From 6b13fc7eb4cf5316977817b48ac8e28729e11228 Mon Sep 17 00:00:00 2001 From: pierre Date: Tue, 27 Apr 2021 14:52:22 +0000 Subject: Set string length before calling move to avoid problems with global data analysis on systems using C library git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@49280 3ad0048d-3df7-0310-abae-a5850022a9f2 --- compiler/assemble.pas | 2 +- compiler/ogcoff.pas | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'compiler') diff --git a/compiler/assemble.pas b/compiler/assemble.pas index 56b8426401..a3798d1bdc 100644 --- a/compiler/assemble.pas +++ b/compiler/assemble.pas @@ -1403,8 +1403,8 @@ Implementation len:=p-pstart; if len>255 then internalerror(200509187); - move(pstart^,hs[1],len); hs[0]:=chr(len); + move(pstart^,hs[1],len); sym:=objdata.symbolref(hs); { Second symbol? } if assigned(relocsym) then diff --git a/compiler/ogcoff.pas b/compiler/ogcoff.pas index 879eb0ca25..e5d9fd0844 100644 --- a/compiler/ogcoff.pas +++ b/compiler/ogcoff.pas @@ -2063,6 +2063,8 @@ const pemagic : array[0..3] of byte = ( FCoffSyms.Read(bosym,sizeof(bosym)); if bosym.Name.Offset.Zeroes<>0 then begin + { Added for sake of global data analysis } + strname[0]:=#0; move(bosym.Name.ShortName,strname[1],8); strname[9]:=#0; strname[0]:=chr(strlen(@strname[1])); @@ -2081,6 +2083,8 @@ const pemagic : array[0..3] of byte = ( FCoffSyms.Read(sym,sizeof(sym)); if plongint(@sym.name)^<>0 then begin + { Added for sake of global data analysis } + strname[0]:=#0; move(sym.name,strname[1],8); strname[9]:=#0; strname[0]:=chr(strlen(@strname[1])); -- cgit v1.2.1