[all-commits] [llvm/llvm-project] 68f5a8: [DebugInfo] Do not hang when parsing a malformed ....

Igor Kudrin via All-commits all-commits at lists.llvm.org
Thu Jul 9 05:16:57 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 68f5a8b2042b8c4dc83d1851b462a0570eb3410f
      https://github.com/llvm/llvm-project/commit/68f5a8b2042b8c4dc83d1851b462a0570eb3410f
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M lld/ELF/DWARF.h
    M lld/ELF/SyntheticSections.cpp
    A lld/test/ELF/gdb-index-invalid-pubnames.s
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
    M llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
    A llvm/test/tools/llvm-dwarfdump/X86/debug_pub_tables_invalid.s

  Log Message:
  -----------
  [DebugInfo] Do not hang when parsing a malformed .debug_pub* section.

The parsing method did not check reading errors and might easily fall
into an infinite loop on an invalid input because of that.

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


  Commit: ca4d8da0c33cd9bcd05f94b4b3ac125b72be2a2a
      https://github.com/llvm/llvm-project/commit/ca4d8da0c33cd9bcd05f94b4b3ac125b72be2a2a
  Author: Igor Kudrin <ikudrin at accesssoftek.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M lld/ELF/SyntheticSections.cpp
    M lld/test/ELF/Inputs/gdb-index.s
    M lld/test/ELF/gdb-index-invalid-pubnames.s
    M lld/test/ELF/gdb-index.s
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h
    M llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
    M llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp
    A llvm/test/tools/llvm-dwarfdump/X86/debug_pub_tables_error_cases.s
    R llvm/test/tools/llvm-dwarfdump/X86/debug_pub_tables_invalid.s

  Log Message:
  -----------
  [DebugInfo] Add more checks to parsing .debug_pub* sections.

The patch adds checking for various potential issues in parsing name
lookup tables and reporting them as recoverable errors, similarly as we
do for other tables.

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


Compare: https://github.com/llvm/llvm-project/compare/a86ce06fafaa...ca4d8da0c33c


More information about the All-commits mailing list