From e4dc9f370f948bf8071e38667fc9606f13ea0f70 Mon Sep 17 00:00:00 2001 From: Josh Ferrell Date: Tue, 9 Dec 2025 13:28:50 -0500 Subject: [DWARF Import] Do not link functions without addresses to externs --- plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'plugins') diff --git a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs index eda641ca..699d37a9 100644 --- a/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs +++ b/plugins/dwarf/dwarf_import/src/dwarfdebuginfo.rs @@ -720,7 +720,9 @@ impl DebugInfoBuilder { // Link mangled names without addresses to existing symbols in the binary if func.address.is_none() && func.raw_name.is_some() { // DWARF doesn't contain GOT info, so remove any entries there...they will be wrong (relying on Binja's mechanisms for the GOT is good ) - if symbol.sym_type() != SymbolType::ImportAddress { + // Also ignore externs since we don't want to try and create functions not backed by the file + let symbol_type = symbol.sym_type(); + if symbol_type != SymbolType::ImportAddress && symbol_type != SymbolType::External { func.address = Some(symbol.address() - bv.start()); } } -- cgit v1.3.1