summaryrefslogtreecommitdiff
path: root/llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test
diff options
context:
space:
mode:
authorArmando Montanez <amontanez@google.com>2019-01-16 17:47:16 +0000
committerArmando Montanez <amontanez@google.com>2019-01-16 17:47:16 +0000
commit4777a84399a5d745283944ce6cd962442b5f504a (patch)
treebc58c7b3904006a68485a63d39c80cfe50ba207c /llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test
parentf4bf1161c0fc5bb5e2b1bd6f2bfdf954eb2bfad5 (diff)
[elfabi] Add support for reading DT_SONAME from binarieslinaro-local/ci/tcwg_kernel/llvm-master-aarch64-next-allnoconfig
This change gives the llvm-elfabi tool the ability to read DT_SONAME from a binary ELF file into an ELFStub. Added: - DynamicEntries struct for storing dynamic entries that are relevant to elfabi. - terminatedSubstr() retrieves a null-terminated substring from a StringRef. - appendToError() appends a string to an error, allowing more specific error messages. Differential Revision: https://reviews.llvm.org/D55629
Diffstat (limited to 'llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test')
-rw-r--r--llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test45
1 files changed, 45 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test b/llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.test
new file mode 100644
index 00000000000..224407d9310
--- /dev/null
+++ b/llvm/test/tools/llvm-elfabi/binary-read-soname-no-null.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
+# \0 b a z\0 s o m e l i b . s o z z z
+ Content: "0062617a00736f6d656c69622e736f7a7a7a"
+ - Name: .dynamic
+ Type: SHT_DYNAMIC
+ Flags: [ SHF_ALLOC ]
+ Address: 0x1018
+ AddressAlign: 8
+ Content: "0e0000000000000005000000000000000a000000000000000f000000000000000500000000000000001000000000000000000000000000000000000000000000"
+ # DT_SONAME 5 (0x05)
+ # DT_STRSZ 15 (0x0F)
+ # DT_STRTAB 0x1000
+ # DT_NULL 0x0
+ Size: 64
+ Link: .dynstr
+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: 0x1018
+ PAddr: 0x1018
+ Sections:
+ - Section: .dynamic
+
+# CHECK: String overran bounds of string table (no null terminator) when reading DT_SONAME