* avoid leaving a dangling pointer in pparautl.proc_add_definition to prevent

use after free in different parts of the compiler

git-svn-id: trunk@49222 -
This commit is contained in:
nickysn 2021-04-17 19:42:49 +00:00
parent 711efc3e3a
commit d8f02107a1

View File

@ -780,6 +780,7 @@ implementation
forwardfound : boolean;
symentry: TSymEntry;
item : tlinkedlistitem;
tmpidx: Integer;
begin
forwardfound:=false;
@ -1092,6 +1093,10 @@ implementation
{ Release current procdef }
currpd.owner.deletedef(currpd);
{ this prevents a dangling pointer and use after free }
tmpidx:=current_module.deflist.IndexOfItem(currpd,FromEnd);
if tmpidx<>-1 then
current_module.deflist[tmpidx]:=nil;
currpd:=fwpd;
end
else