1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

e_phoff and e_shoff are 32/64 specific

This commit is contained in:
John Reiser 2013-10-28 07:11:40 -07:00
parent caf9af7ae4
commit 382331fb11
2 changed files with 16 additions and 2 deletions

View File

@ -212,6 +212,12 @@ PackLinuxElf32::PackLinuxElf32help1(InputFile *f)
e_type = get_te16(&ehdri.e_type);
e_phnum = get_te16(&ehdri.e_phnum);
e_shnum = get_te16(&ehdri.e_shnum);
if (ehdri.e_ident[Elf32_Ehdr::EI_CLASS]!=Elf32_Ehdr::ELFCLASS32) {
e_phoff = 0;
e_shoff = 0;
sz_phdrs = 0;
return;
}
e_phoff = get_te32(&ehdri.e_phoff);
e_shoff = get_te32(&ehdri.e_shoff);
sz_phdrs = e_phnum * get_te16(&ehdri.e_phentsize);
@ -567,6 +573,12 @@ PackLinuxElf64::PackLinuxElf64help1(InputFile *f)
e_type = get_te16(&ehdri.e_type);
e_phnum = get_te16(&ehdri.e_phnum);
e_shnum = get_te16(&ehdri.e_shnum);
if (ehdri.e_ident[Elf64_Ehdr::EI_CLASS]!=Elf64_Ehdr::ELFCLASS64) {
e_phoff = 0;
e_shoff = 0;
sz_phdrs = 0;
return;
}
e_phoff = get_te64(&ehdri.e_phoff);
e_shoff = get_te64(&ehdri.e_shoff);
sz_phdrs = e_phnum * get_te16(&ehdri.e_phentsize);

View File

@ -72,8 +72,6 @@ protected:
unsigned e_type;
unsigned e_phnum; /* Program header table entry count */
unsigned e_shnum;
unsigned e_phoff;
unsigned e_shoff;
char *file_image; // if ET_DYN investigation
char const *dynstr; // from DT_STRTAB
@ -153,6 +151,8 @@ protected:
protected:
Elf32_Ehdr ehdri; // from input file
Elf32_Phdr *phdri; // for input file
unsigned e_phoff;
unsigned e_shoff;
unsigned char *note_body; // concatenated contents of PT_NOTEs, if any
unsigned note_size; // total size of PT_NOTEs
Elf32_Shdr const *shdri; // from input file
@ -268,6 +268,8 @@ protected:
protected:
Elf64_Ehdr ehdri; // from input file
Elf64_Phdr *phdri; // for input file
upx_uint64_t e_phoff;
upx_uint64_t e_shoff;
unsigned char *note_body; // concatenated contents of PT_NOTEs, if any
unsigned note_size; // total size of PT_NOTEs
Elf64_Shdr const *shdri; // from input file