## Check bad DT_STRTAB address. # RUN: yaml2obj %s -DSTRSZ_VALUE=0x0000000000000001 -DSTRTAB_ADDR=0x0000000000000260 -o %t # RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe %t 2>&1 | FileCheck %s -DERR_ADDR=0x260 ## Check bad DT_STRSZ size. # RUN: yaml2obj %s -DSTRSZ_VALUE=0x0000000000001000 -DSTRTAB_ADDR=0x0000000000001000 -o %t # RUN: not llvm-ifs --input-format=ELF --output-ifs=%t.tbe %t 2>&1 | FileCheck %s -DERR_ADDR=0x2000 !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_DYN Machine: EM_X86_64 Sections: - Name: .dynstr Type: SHT_STRTAB Flags: [ SHF_ALLOC ] Address: 0x1000 Content: "00" - Name: .dynamic Type: SHT_DYNAMIC Flags: [ SHF_ALLOC ] Address: 0x0000000000001008 Link: .dynstr AddressAlign: 0x0000000000000008 EntSize: 0x0000000000000010 Entries: - Tag: DT_SONAME Value: 0x0000000000000000 - Tag: DT_STRSZ Value: [[STRSZ_VALUE]] - Tag: DT_STRTAB Value: [[STRTAB_ADDR]] - Tag: DT_SYMTAB Value: 0x0000000000001000 - Tag: DT_NULL Value: 0x0000000000000000 ProgramHeaders: - Type: PT_LOAD Flags: [ PF_R ] VAddr: 0x1000 Align: 8 FirstSec: .dynstr LastSec: .dynamic - Type: PT_DYNAMIC Flags: [ PF_X, PF_R ] VAddr: 0x1008 FirstSec: .dynamic LastSec: .dynamic # CHECK: virtual address is not in any segment: [[ERR_ADDR]] when locating dynamic string table section contents