40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
## 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 0x78 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
|
|
FirstSec: .foo
|
|
LastSec: .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
|
|
ProgramHeaders:
|
|
- Type: PT_LOAD
|
|
Offset: 0x100000
|
|
FileSize: 1
|