/
githubmirror
/
elfutils
Обзор
Документация
Войти
/
githubmirror
/
elfutils
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
tests/run-getphdrnum.sh
137 строк
3 KB
Mark Wielaard
tests: Add testcase for elf_getphdrnum with more than 65535 entries.
23 мар 2020, 14:28
23 мар 2020, 14:28
7982afb
Код
Авторство
О чём код?
#! /bin/sh # testfile-phdrs.elf generated with python3 script # import struct # import sys # # phnum = 66000 # # sys.stdout.buffer.write( # struct.pack( # "<16BHHIQQQIHHHHHH", # # EI_MAG # *b"\x7fELF", # # EI_CLASS = ELFCLASS64 # 2, # # EI_DATA = ELFDATA2LSB # 1, # # EI_VERSION # 1, # # EI_OSABI = ELFOSABI_SYSV # 0, # # EI_ABIVERSION # 0, # # EI_PAD # *bytes(7), # # e_type = ET_CORE # 4, # # e_machine = EM_X86_64 # 62, # # e_version # 1, # # e_entry # 0, # # e_phoff = sizeof(Elf64_Ehdr) + sizeof(Elf64_Shdr) # 128, # # e_shoff = sizeof(Elf64_Ehdr) # 64, # # e_flags # 0, # # e_ehsize # 64, # # e_phentsize # 56, # # e_phnum = PN_XNUM # 0xFFFF, # # e_shentsize # 64, # # e_shnum # 1, # # e_shstrndx # 0, # ) # ) # # sys.stdout.buffer.write( # struct.pack( # "<IIQQQQIIQQ", # # sh_name # 0, # # sh_type = SHT_NULL # 0, # # sh_flags # 0, # # sh_addr # 0, # # sh_offset # 0, # # sh_size # 0, # # sh_link # 0, # # sh_info # phnum, # # sh_addralign # 0, # # sh_entsize # 0, # ) # ) # # for i in range(phnum): # sys.stdout.buffer.write( # struct.pack( # "<IIQQQQQQ", # # p_type = PT_LOAD # 1, # # p_flags = PF_X|PF_W|PF_R # 0x7, # # p_offset # 0, # # p_vaddr # # i * 4096, # 4096, # # p_paddr # 0, # # p_filesz # 0, # # p_memsz # 4096, # # p_align # 0, # ) # ) . $srcdir/test-subr.sh testfiles testfile-phdrs.elf testrun_compare ${abs_top_builddir}/src/readelf -h testfile-phdrs.elf<<\EOF ELF Header: Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 Class: ELF64 Data: 2's complement, little endian Ident Version: 1 (current) OS/ABI: UNIX - System V ABI Version: 0 Type: CORE (Core file) Machine: AMD x86-64 Version: 1 (current) Entry point address: 0 Start of program headers: 128 (bytes into file) Start of section headers: 64 (bytes into file) Flags: Size of this header: 64 (bytes) Size of program header entries: 56 (bytes) Number of program headers entries: 65535 (66000 in [0].sh_info) Size of section header entries: 64 (bytes) Number of section headers entries: 1 Section header string table index: 0 EOF testrun_compare ${abs_builddir}/getphdrnum testfile-phdrs.elf<<\EOF 66000 EOF exit 0