Reverted r283740 [Object/ELF] - Do not crash on invalid Header->e_shoff value.
authorGeorge Rimar <grimar@accesssoftek.com>
Tue, 11 Oct 2016 08:12:27 +0000 (08:12 +0000)
committerGeorge Rimar <grimar@accesssoftek.com>
Tue, 11 Oct 2016 08:12:27 +0000 (08:12 +0000)
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
                               ^
<stdin>: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<llvm::object::ELFType<llvm::support::endianness::little, true> >', which requires 2 byte alignment
^
<stdin>: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<llvm::object::ELFType<llvm::support::endianness::little, true> >', which requires 2 byte alignment

llvm-svn: 283858

llvm/include/llvm/Object/ELF.h
llvm/test/Object/Inputs/invalid-sections-address-alignment.x86-64 [deleted file]
llvm/test/Object/invalid.test

index 302db65..c06fa75 100644 (file)
@@ -367,8 +367,6 @@ const typename ELFFile<ELFT>::Elf_Shdr *ELFFile<ELFT>::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<Elf_Shdr>::Alignment - 1))
-    report_fatal_error("Invalid address alignment of section headers");
   return reinterpret_cast<const Elf_Shdr *>(base() + Header->e_shoff);
 }
 
diff --git a/llvm/test/Object/Inputs/invalid-sections-address-alignment.x86-64 b/llvm/test/Object/Inputs/invalid-sections-address-alignment.x86-64
deleted file mode 100644 (file)
index c0653d1..0000000
Binary files a/llvm/test/Object/Inputs/invalid-sections-address-alignment.x86-64 and /dev/null differ
index 1c060f3..9f55874 100644 (file)
@@ -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