[llvm] r283858 - Reverted r283740 [Object/ELF] - Do not crash on invalid Header->e_shoff value.

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 11 01:12:28 PDT 2016


Author: grimar
Date: Tue Oct 11 03:12:27 2016
New Revision: 283858

URL: http://llvm.org/viewvc/llvm-project?rev=283858&view=rev
Log:
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
                               ^
<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
          

Removed:
    llvm/trunk/test/Object/Inputs/invalid-sections-address-alignment.x86-64
Modified:
    llvm/trunk/include/llvm/Object/ELF.h
    llvm/trunk/test/Object/invalid.test

Modified: llvm/trunk/include/llvm/Object/ELF.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Object/ELF.h?rev=283858&r1=283857&r2=283858&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/ELF.h (original)
+++ llvm/trunk/include/llvm/Object/ELF.h Tue Oct 11 03:12:27 2016
@@ -367,8 +367,6 @@ const typename ELFFile<ELFT>::Elf_Shdr *
   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);
 }
 

Removed: llvm/trunk/test/Object/Inputs/invalid-sections-address-alignment.x86-64
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Inputs/invalid-sections-address-alignment.x86-64?rev=283857&view=auto
==============================================================================
Binary file - no diff available.

Modified: llvm/trunk/test/Object/invalid.test
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/invalid.test?rev=283858&r1=283857&r2=283858&view=diff
==============================================================================
--- llvm/trunk/test/Object/invalid.test (original)
+++ llvm/trunk/test/Object/invalid.test Tue Oct 11 03:12:27 2016
@@ -64,7 +64,3 @@ RUN:   FileCheck --check-prefix=INVALID-
 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




More information about the llvm-commits mailing list