diff options
Diffstat (limited to 'llvm/test/tools/llvm-elfabi/binary-read-neededlibs-bad-offset.test')
-rw-r--r-- | llvm/test/tools/llvm-elfabi/binary-read-neededlibs-bad-offset.test | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-elfabi/binary-read-neededlibs-bad-offset.test b/llvm/test/tools/llvm-elfabi/binary-read-neededlibs-bad-offset.test new file mode 100644 index 00000000000..439ca5ce9dc --- /dev/null +++ b/llvm/test/tools/llvm-elfabi/binary-read-neededlibs-bad-offset.test @@ -0,0 +1,45 @@ +# RUN: yaml2obj %s > %t +# RUN: not llvm-elfabi --elf %t --emit-tbe=%t.tbe 2>&1 | FileCheck %s + +!ELF +FileHeader: + Class: ELFCLASS64 + Data: ELFDATA2LSB + Type: ET_DYN + Machine: EM_X86_64 +Sections: + - Name: .dynstr + Type: SHT_STRTAB + Flags: [ SHF_ALLOC ] + Address: 0x1000 + # "\0libfoo.so\0libbar.so\0somelib.so\0foo\0" + Content: "006c6962666f6f2e736f006c69626261722e736f00736f6d656c69622e736f00666f6f00" + - Name: .dynamic + Type: SHT_DYNAMIC + Flags: [ SHF_ALLOC ] + Address: 0x1024 + Content: "010000000000000001000000000000000e0000000000000015000000000000000100000000000000ffff0000000000000a0000000000000024000000000000000500000000000000001000000000000000000000000000000000000000000000" + # DT_NEEDED 1 (0x01) + # DT_SONAME 21 (0x15) + # Bad DT_NEEDED entry (offset outside string table): + # DT_NEEDED 65535 (0xffff) + # DT_STRSZ 36 (0x24) + # DT_STRTAB 0x1000 + # DT_NULL 0x0 + Size: 96 +ProgramHeaders: + - Type: PT_LOAD + Flags: [ PF_R ] + VAddr: 0x1000 + PAddr: 0x1000 + Align: 8 + Sections: + - Section: .dynstr + - Section: .dynamic + - Type: PT_DYNAMIC + Flags: [ PF_X, PF_R ] + VAddr: 0x1024 + PAddr: 0x1024 + Sections: + +# CHECK: DT_NEEDED string offset (0x000000000000ffff) outside of dynamic string table |