[PATCH] D86923: [llvm-readobj/elf] - Don't crash when the size of a dynamic symbol table, inferred from the hash table, is broken.

Petr Hosek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 22 00:18:40 PDT 2020


phosek added a comment.

In D86923#2276286 <https://reviews.llvm.org/D86923#2276286>, @grimar wrote:

> In D86923#2275328 <https://reviews.llvm.org/D86923#2275328>, @thakis wrote:
>
>> Looks like this breaks tests on mac: http://45.33.8.238/mac/20491/step_11.txt
>>
>> Please take a look and revert for now if it takes a while to fix.
>
> Thanks for letting me know. Fixed in rGef4851742de5e64a1ba9de51e375ac503d2d7ecb <https://reviews.llvm.org/rGef4851742de5e64a1ba9de51e375ac503d2d7ecb>.

We're still seeing a failure on macOS:

  /b/s/w/ir/k/llvm-project/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test:356:23: error: BROKEN-NCHAIN-LLVM: expected string not found in input
  # BROKEN-NCHAIN-LLVM: {{^}}[[#%u, FILESIZE:]]
                        ^
  /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.out.llvm.txt:1:2: note: scanning from here
   840 /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.1
   ^
  /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.out.llvm.txt:13:5: note: possible intended match here
   Name: (0)
      ^
  
  Input file: /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.out.llvm.txt
  Check file: /b/s/w/ir/k/llvm-project/llvm/test/tools/llvm-readobj/ELF/dyn-symbols-size-from-hash-table.test
  
  -dump-input=help explains the following input dump.
  
  Input was:
  <<<<<<
               1:  840 /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.1
  check:356'0      X~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match found
               2: /b/s/w/ir/k/staging/llvm_build/bin/llvm-readobj: warning: '/b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.1': hash table nchain (4294967295) differs from symbol count derived from SHT_DYNSYM section header (1)
  check:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               3: /b/s/w/ir/k/staging/llvm_build/bin/llvm-readobj: warning: '/b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.1': the size (0x17ffffffe8) of the dynamic symbol table at 0xf0, derived from the hash table, goes past the end of the file (0x348) and will be ignored
  check:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               4: 
  check:356'0     ~
               5: File: /b/s/w/ir/k/staging/llvm_build/test/tools/llvm-readobj/ELF/Output/dyn-symbols-size-from-hash-table.test.tmp4.1
  check:356'0     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               6: Format: elf64-x86-64
  check:356'0     ~~~~~~~~~~~~~~~~~~~~
               7: Arch: x86_64
  check:356'0     ~~~~~~~~~~~~
               8: AddressSize: 64bit
  check:356'0     ~~~~~~~~~~~~~~~~~~
               9: LoadName: 
  check:356'0     ~~~~~~~~~~
              10: Sections [
  check:356'0     ~~~~~~~~~~
              11:  Section {
  check:356'0     ~~~~~~~~~~
              12:  Index: 0
  check:356'0     ~~~~~~~~~
              13:  Name: (0)
  check:356'0     ~~~~~~~~~~
  check:356'1         ?      possible intended match
              14:  Type: SHT_NULL (0x0)
  check:356'0     ~~~~~~~~~~~~~~~~~~~~~
              15:  Flags [ (0x0)
  check:356'0     ~~~~~~~~~~~~~~
              16:  ]
  check:356'0     ~~
              17:  Address: 0x0
  check:356'0     ~~~~~~~~~~~~~
              18:  Offset: 0x0
  check:356'0     ~~~~~~~~~~~~
               .
               .
               .
  >>>>>>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86923/new/

https://reviews.llvm.org/D86923



More information about the llvm-commits mailing list