[llvm] r285288 - Revert r285285 "[Object/ELF] - Fixed behavior when SectionHeaderTable->sh_size is too large."

George Rimar via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 27 05:18:50 PDT 2016


Author: grimar
Date: Thu Oct 27 07:18:50 2016
New Revision: 285288

URL: http://llvm.org/viewvc/llvm-project?rev=285288&view=rev
Log:
Revert r285285 "[Object/ELF] - Fixed behavior when SectionHeaderTable->sh_size is too large."
It broke BB.

Removed:
    llvm/trunk/test/Object/Inputs/invalid-sections-num.elf
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=285288&r1=285287&r2=285288&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Object/ELF.h (original)
+++ llvm/trunk/include/llvm/Object/ELF.h Thu Oct 27 07:18:50 2016
@@ -347,12 +347,6 @@ ELFFile<ELFT>::ELFFile(StringRef Object,
   // The getNumSections() call below depends on SectionHeaderTable being set.
   SectionHeaderTable =
     reinterpret_cast<const Elf_Shdr *>(base() + SectionTableOffset);
-  if (getNumSections() > UINT64_MAX / Header->e_shentsize) {
-    // Section table goes past end of file!
-    EC = object_error::parse_failed;
-    return;
-  }
-
   const uint64_t SectionTableSize = getNumSections() * Header->e_shentsize;
 
   if (SectionTableOffset + SectionTableSize > FileSize) {

Removed: llvm/trunk/test/Object/Inputs/invalid-sections-num.elf
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Object/Inputs/invalid-sections-num.elf?rev=285287&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=285288&r1=285287&r2=285288&view=diff
==============================================================================
--- llvm/trunk/test/Object/invalid.test (original)
+++ llvm/trunk/test/Object/invalid.test Thu Oct 27 07:18:50 2016
@@ -76,6 +76,3 @@ INVALID-SEC-ADDRESS-ALIGNMENT: Invalid d
 RUN: not llvm-readobj -t %p/Inputs/invalid-section-size2.elf 2>&1 | \
 RUN:   FileCheck --check-prefix=INVALID-SECTION-SIZE2 %s
 INVALID-SECTION-SIZE2: Invalid data was encountered while parsing the file.
-
-RUN: not llvm-readobj -t %p/Inputs/invalid-sections-num.elf 2>&1 | FileCheck --check-prefix=INVALID-SECTION-NUM %s
-INVALID-SECTION-NUM: Invalid data was encountered while parsing the file.




More information about the llvm-commits mailing list