]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gprofng: fix Segmentation Fault in DbeInstr::mapPCtoLine
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Fri, 17 Jan 2025 04:29:34 +0000 (20:29 -0800)
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>
Fri, 17 Jan 2025 16:26:45 +0000 (08:26 -0800)
The bug was filed against gprofng-gui (https://savannah.gnu.org/bugs/?66560).

gprofng/ChangeLog
2025-01-16  Vladimir Mezentsev  <vladimir.mezentsev@oracle.com>

* src/Hist_data.cc (DbeInstr::mapPCtoLine): Check for null pointer.

gprofng/src/Hist_data.cc

index 334c5e121135725b09e5e0f18b7285a1a1b627d7..0a373a5d14beb49f983ea7feeeb7165f20467a48 100644 (file)
@@ -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;
     }