From 6f5fae607de7aa257cb9c75fb30e306cdc52512f Mon Sep 17 00:00:00 2001 From: Vladimir Mezentsev Date: Thu, 16 Jan 2025 20:29:34 -0800 Subject: gprofng: fix Segmentation Fault in DbeInstr::mapPCtoLine The bug was filed against gprofng-gui (https://savannah.gnu.org/bugs/?66560). gprofng/ChangeLog 2025-01-16 Vladimir Mezentsev * src/Hist_data.cc (DbeInstr::mapPCtoLine): Check for null pointer. --- gprofng/src/Hist_data.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gprofng/src') diff --git a/gprofng/src/Hist_data.cc b/gprofng/src/Hist_data.cc index 334c5e1..0a373a5 100644 --- a/gprofng/src/Hist_data.cc +++ b/gprofng/src/Hist_data.cc @@ -1391,7 +1391,8 @@ DbeInstr::mapPCtoLine (SourceFile *sf) if (inlinedInd >= 0) { DbeLine *dl = func->inlinedSubr[inlinedInd].dbeLine; - return dl->sourceFile->find_dbeline (func, dl->lineno); + if (dl) + return dl->sourceFile->find_dbeline (func, dl->lineno); } return func->mapPCtoLine (addr, sf); } @@ -1422,7 +1423,9 @@ DbeInstr::add_inlined_info (StringBuilder *sb) sb->append (' '); } DbeLine *dl = p->dbeLine; - sb->appendf (NTXT ("%s:%lld <-- "), get_basename (dl->sourceFile->get_name ()), (long long) dl->lineno); + if (dl) + sb->appendf ("%s:%lld <-- ", get_basename (dl->sourceFile->get_name ()), + (long long) dl->lineno); } last = p; } -- cgit v1.1