From 3563597875113428290914767863801133383254 Mon Sep 17 00:00:00 2001 From: Glenn Smith Date: Mon, 2 Sep 2024 18:47:03 -0400 Subject: Fix panic on dwarf import when an exception frame extends to the end of memory --- rust/examples/dwarf/dwarf_import/src/lib.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'rust/examples') diff --git a/rust/examples/dwarf/dwarf_import/src/lib.rs b/rust/examples/dwarf/dwarf_import/src/lib.rs index 98153398..74f2065e 100644 --- a/rust/examples/dwarf/dwarf_import/src/lib.rs +++ b/rust/examples/dwarf/dwarf_import/src/lib.rs @@ -322,11 +322,15 @@ fn parse_eh_frame( return Ok(cie_data_offsets); } - // Store CIE offset for FDE range - cie_data_offsets.insert( - fde.initial_address()..fde.initial_address()+fde.len(), - fde.cie().data_alignment_factor() - ); + if fde.initial_address().overflowing_add(fde.len()).1 { + warn!("FDE at offset {:?} exceeds bounds of memory space! {:#x} + length {:#x}", fde.offset(), fde.initial_address(), fde.len()); + } else { + // Store CIE offset for FDE range + cie_data_offsets.insert( + fde.initial_address()..fde.initial_address() + fde.len(), + fde.cie().data_alignment_factor(), + ); + } } } } -- cgit v1.3.1