From: George Rimar Date: Tue, 11 Oct 2016 08:12:27 +0000 (+0000) Subject: Reverted r283740 [Object/ELF] - Do not crash on invalid Header->e_shoff value. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=54bf85d06b9aeb2adddea52361292227fde7c1bf;p=llvm Reverted r283740 [Object/ELF] - Do not crash on invalid Header->e_shoff value. Bot does not like it: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/17075 /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/test/Object/invalid.test:70:32: error: expected string not found in input INVALID-SEC-ADDRESS-ALIGNMENT: Invalid address alignment of section headers ^ :1:1: note: scanning from here /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/Object/ELF.h:412:7: runtime error: upcast of misaligned address 0x000002d8b899 for type 'llvm::object::Elf_Shdr_Impl >', which requires 2 byte alignment ^ :1:125: note: possible intended match here /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/include/llvm/Object/ELF.h:412:7: runtime error: upcast of misaligned address 0x000002d8b899 for type 'llvm::object::Elf_Shdr_Impl >', which requires 2 byte alignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283858 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/ELF.h b/include/llvm/Object/ELF.h index 302db65bea4..c06fa75231b 100644 --- a/include/llvm/Object/ELF.h +++ b/include/llvm/Object/ELF.h @@ -367,8 +367,6 @@ const typename ELFFile::Elf_Shdr *ELFFile::section_begin() const { if (Header->e_shentsize != sizeof(Elf_Shdr)) report_fatal_error( "Invalid section header entry size (e_shentsize) in ELF header"); - if (Header->e_shoff & (AlignOf::Alignment - 1)) - report_fatal_error("Invalid address alignment of section headers"); return reinterpret_cast(base() + Header->e_shoff); } diff --git a/test/Object/Inputs/invalid-sections-address-alignment.x86-64 b/test/Object/Inputs/invalid-sections-address-alignment.x86-64 deleted file mode 100644 index c0653d1d1b3..00000000000 Binary files a/test/Object/Inputs/invalid-sections-address-alignment.x86-64 and /dev/null differ diff --git a/test/Object/invalid.test b/test/Object/invalid.test index 1c060f3e6fc..9f5587422d1 100644 --- a/test/Object/invalid.test +++ b/test/Object/invalid.test @@ -64,7 +64,3 @@ RUN: FileCheck --check-prefix=INVALID-RELOC-SH-OFFSET %s RUN: not llvm-readobj -r %p/Inputs/invalid-relocation-sec-sh_offset.elf-x86-64 2>&1 | \ RUN: FileCheck --check-prefix=INVALID-RELOC-SH-OFFSET %s INVALID-RELOC-SH-OFFSET: Invalid data was encountered while parsing the file - -RUN: not llvm-readobj -t %p/Inputs/invalid-sections-address-alignment.x86-64 2>&1 | \ -RUN: FileCheck --check-prefix=INVALID-SEC-ADDRESS-ALIGNMENT %s -INVALID-SEC-ADDRESS-ALIGNMENT: Invalid address alignment of section headers