Skip to content

OffsetOutOfBounds from DIE in DWARF Import #7119

@fuzyll

Description

@fuzyll

Version and Platform (required):

  • Binary Ninja Version: 5.1.7978-dev Commercial
  • Platform: Linux
  • Architecture: x86_64

Bug Description:
Customer is trying to analyze an aarch64 Linux kernel driver with DWARF debuginfo and is hitting this unwrap:

[0:0 DWARF  warn] Failed to fetch DIE for attr DW_AT_abstract_origin. Debug information may be incomplete.
[0:0 DWARF  warn] Failed to fetch DIE for attr DW_AT_abstract_origin. Debug information may be incomplete.
[0:0 DWARF debug] Unhandled operation type for variable: RegisterOffset { register: Register(9), offset: 0, base_type: UnitOffset(0) }
thread '<unnamed>' panicked at plugins/dwarf/dwarf_import/src/types.rs:321:49:
called `Result::unwrap()` on an `Err` value: OffsetOutOfBounds
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
[0:0 DWARF error] ffi callback caught panic: CustomDebugInfoParser::parse_info
[1]    684981 IOT instruction (core dumped)  ~/code/binaryninja/binaryninja -d -e

Steps To Reproduce:
Customer was not able to produce a binary, but suggested that other aarch64 Linux kernel objects with DWARF debug info may produce a similar result.

Expected Behavior:
We shouldn't crash, even if we won't wind up getting all the right info due to a different issue.

Additional Information:
Due to not having the offending binary, I'm fine with us closing this if we can just work around the crash by eliminating the offending unwrap. But, if anyone does wind up having this issue and has a binary we can test with, that would be awesome.

Also, turning off analysis.debugInfo.internal was able to work around this by turning off DWARF Import for the embedded DWARF debuginfo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions