[lld] r245884 - Diagnose symbols with invalid section indexes.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 15:00:25 PDT 2015
Author: rafael
Date: Mon Aug 24 17:00:25 2015
New Revision: 245884
URL: http://llvm.org/viewvc/llvm-project?rev=245884&view=rev
Log:
Diagnose symbols with invalid section indexes.
Added:
lld/trunk/test/elf2/Inputs/invalid-section-index.elf
Modified:
lld/trunk/ELF/InputFiles.cpp
lld/trunk/test/elf2/invalid-elf.test
Modified: lld/trunk/ELF/InputFiles.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/InputFiles.cpp?rev=245884&r1=245883&r2=245884&view=diff
==============================================================================
--- lld/trunk/ELF/InputFiles.cpp (original)
+++ lld/trunk/ELF/InputFiles.cpp Mon Aug 24 17:00:25 2015
@@ -93,6 +93,10 @@ SymbolBody *elf2::ObjectFile<ELFT>::crea
if (SecIndex == SHN_XINDEX)
SecIndex = ELFObj->getExtendedSymbolTableIndex(Sym, Symtab, SymtabSHNDX);
+ if (SecIndex >= Chunks.size() ||
+ (SecIndex != 0 && !Chunks[SecIndex]))
+ error("Invalid section index");
+
switch (Sym->getBinding()) {
default:
error("unexpected binding");
Added: lld/trunk/test/elf2/Inputs/invalid-section-index.elf
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/Inputs/invalid-section-index.elf?rev=245884&view=auto
==============================================================================
Binary files lld/trunk/test/elf2/Inputs/invalid-section-index.elf (added) and lld/trunk/test/elf2/Inputs/invalid-section-index.elf Mon Aug 24 17:00:25 2015 differ
Modified: lld/trunk/test/elf2/invalid-elf.test
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/invalid-elf.test?rev=245884&r1=245883&r2=245884&view=diff
==============================================================================
--- lld/trunk/test/elf2/invalid-elf.test (original)
+++ lld/trunk/test/elf2/invalid-elf.test Mon Aug 24 17:00:25 2015
@@ -13,3 +13,7 @@ INVALID-SYMTAB-SHINFO: Invalid sh_info i
RUN: not lld -flavor gnu2 %p/Inputs/invalid-binding.elf -o %t2 2>&1 | \
RUN: FileCheck --check-prefix=INVALID-BINDING %s
INVALID-BINDING: unexpected binding
+
+RUN: not lld -flavor gnu2 %p/Inputs/invalid-section-index.elf -o %t2 2>&1 | \
+RUN: FileCheck --check-prefix=INVALID-SECTION-INDEX %s
+INVALID-SECTION-INDEX: Invalid section index
More information about the llvm-commits
mailing list