From c7825f845bd4e8884a81ece2faf095178446740a Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 23 Feb 2025 23:34:06 +0100 Subject: [PATCH] FpDebug: Add safeguard/error-checks to TDwarfInformationEntry.PrepareAbbrev / PrepareAbbrevData. Issue #41459 (cherry picked from commit 0530a14bd5f2e9e7491d22367af42518abce39ea) --- components/fpdebug/fpdbgdwarfdataclasses.pas | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/fpdebug/fpdbgdwarfdataclasses.pas b/components/fpdebug/fpdbgdwarfdataclasses.pas index 59f7e1cd32..bf19b497d3 100644 --- a/components/fpdebug/fpdbgdwarfdataclasses.pas +++ b/components/fpdebug/fpdbgdwarfdataclasses.pas @@ -2732,7 +2732,7 @@ end; procedure TDwarfInformationEntry.PrepareAbbrev; begin - if dieAbbrevValid in FFlags then + if (dieAbbrevValid in FFlags) or (FInformationEntry = nil) then exit; FInformationData := FCompUnit.FAbbrevList.FindLe128bFromPointer(FInformationEntry, FAbbrev); Include(FFlags, dieAbbrevValid); @@ -2747,6 +2747,9 @@ function TDwarfInformationEntry.PrepareAbbrevData: Boolean; var AbbrList: TDwarfAbbrevList; begin + if FInformationEntry = nil then + exit(False); + Result := FAbbrevData <> nil; if dieAbbrevDataValid in FFlags then exit;