DWARF1 AT_sibling sanity check

Project / Subsystem

binutils / gcc

Date

2026-07-27

Proposer

Alan Modra <amodra@gmail.com>

Source type

public_inbox

Consensus

Proposed

Sentiment

/10

Technical tradeoffs

  • Potential breakage for very old DWARF v1 files that may have used backward `AT_sibling` links.
  • Increased robustness against malformed DWARF v1 input, preventing potential crashes or infinite loops.

All attributes

project
binutils
subsystem
gcc
patch_id
discussion_id
ambkVeuxp_ZAFso4@squeak.grove.modra.org
source_type
public_inbox
title
DWARF1 AT_sibling sanity check
headline
DWARF1 AT_sibling sanity check
tldr
Patch to sanity check AT_sibling in DWARF version 1 to prevent infinite loops from fuzzed object files.
proposer
Alan Modra <amodra@gmail.com>
consensus
Proposed
outcome
proposed
sentiment_score
technical_tradeoffs
  • Potential breakage for very old DWARF v1 files that may have used backward `AT_sibling` links.
  • Increased robustness against malformed DWARF v1 input, preventing potential crashes or infinite loops.
series_id
series_role
standalone
series_parts
[]
tags
  • dwarf
  • debugging
  • security
  • binutils
  • patch
bugzilla_url
date
2026-07-27T00:00:00.000Z

DWARF1 AT_sibling sanity check

This patch introduces a sanity check for the AT_sibling attribute in DWARF version 1 debugging information. The author believes that AT_sibling usually points forward in DWARF v1, a format largely unsupported since GCC 3.3. Allowing backward AT_sibling links can lead to infinite loops when parsing fuzzed object files, impacting tools like addr2line and objdump. This change aims to prevent such issues and may break support for some older DWARF v1 files if they rely on backward links.