1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
## In this case, we have a program header with a file size that
## overflows the binary size. Check llvm-objcopy doesn't crash
## and report this error properly.
# RUN: yaml2obj --docnum=1 %s -o %t1.o
# RUN: not llvm-objcopy %t1.o 2>&1 | FileCheck %s --check-prefix=ERR1
# ERR1: error: program header with offset 0x1b8 and file size 0x100000 goes past the end of the file
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .foo
Type: SHT_PROGBITS
ProgramHeaders:
- Type: PT_LOAD
FileSize: 0x100000
Sections:
- Section: .foo
## A similar case, but now the p_offset property of the program header is too large.
# RUN: yaml2obj --docnum=2 %s -o %t2.o
# RUN: not llvm-objcopy %t2.o 2>&1 | FileCheck %s --check-prefix=ERR2
# ERR2: error: program header with offset 0x100000 and file size 0x1 goes past the end of the file
--- !ELF
FileHeader:
Class: ELFCLASS64
Data: ELFDATA2LSB
Type: ET_EXEC
Machine: EM_X86_64
Sections:
- Name: .foo
Type: SHT_PROGBITS
Size: 1
ProgramHeaders:
- Type: PT_LOAD
Offset: 0x100000
FileSize: 1
Sections:
- Section: .foo
|