[all-commits] [llvm/llvm-project] 6c7324: [ELF] Fix a null pointer dereference when --emit-r...

Fangrui Song via All-commits all-commits at lists.llvm.org
Thu Feb 13 09:02:11 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6c73246179376442705b3a545f4e1f1478777a04
      https://github.com/llvm/llvm-project/commit/6c73246179376442705b3a545f4e1f1478777a04
  Author: Fangrui Song <maskray at google.com>
  Date:   2020-02-13 (Thu, 13 Feb 2020)

  Changed paths:
    M lld/ELF/Driver.cpp
    M lld/ELF/InputSection.cpp
    M lld/ELF/InputSection.h
    A lld/test/ELF/emit-relocs-debug.s

  Log Message:
  -----------
  [ELF] Fix a null pointer dereference when --emit-relocs and --strip-debug are used together

Fixes https://bugs.llvm.org//show_bug.cgi?id=44878

When --strip-debug is specified, .debug* are removed from inputSections
while .rel[a].debug* (incorrectly) remain.

LinkerScript::addOrphanSections() requires the output section of a relocated
InputSectionBase to be created first.

.debug* are not in inputSections ->
output sections .debug* are not created ->
getOutputSectionName(.rel[a].debug*) dereferences a null pointer.

Fix the null pointer dereference by deleting .rel[a].debug* from inputSections as well.

Reviewed By: grimar, nickdesaulniers

Differential Revision: https://reviews.llvm.org/D74510




More information about the All-commits mailing list