| ## 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 |