summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-04-14 16:38:25 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-04-14 16:38:25 +0000
commitadc90c9d6d1f6cf13a374399f3a3c574ddcbd8b5 (patch)
tree841263080361129bd82b89f8a398588e13877313
parent6ede5d24b837b24c6e97cee84ecc6c9990568ef4 (diff)
downloadllvm-adc90c9d6d1f6cf13a374399f3a3c574ddcbd8b5.tar.gz
llvm-adc90c9d6d1f6cf13a374399f3a3c574ddcbd8b5.tar.bz2
llvm-adc90c9d6d1f6cf13a374399f3a3c574ddcbd8b5.tar.xz
tools: fix heap-buffer-overrun detected via ASAN
Once the auxiliary fields relating to the filename have been inspected, any following auxiliary fields need not be visited as they have been consumed (the following fields comprise the filepath as a single unit). Adjust the test to catch this even if ASAN is not enabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206190 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/tools/llvm-objdump/coff-file.test1
-rw-r--r--tools/llvm-objdump/llvm-objdump.cpp3
2 files changed, 4 insertions, 0 deletions
diff --git a/test/tools/llvm-objdump/coff-file.test b/test/tools/llvm-objdump/coff-file.test
index ba345b4d42..75d02b8a49 100644
--- a/test/tools/llvm-objdump/coff-file.test
+++ b/test/tools/llvm-objdump/coff-file.test
@@ -2,4 +2,5 @@ RUN: llvm-objdump -t %p/Inputs/file.obj.coff-arm | FileCheck %s
CHECK: .file
CHECK-NEXT: AUX /Users/compnerd/work/llvm/test/tools/llvm-readobj/Inputs/file.asm
+CHECK-NEXT: [{{[ 0-9]+}}]
diff --git a/tools/llvm-objdump/llvm-objdump.cpp b/tools/llvm-objdump/llvm-objdump.cpp
index aff83f0cbd..42c61c6386 100644
--- a/tools/llvm-objdump/llvm-objdump.cpp
+++ b/tools/llvm-objdump/llvm-objdump.cpp
@@ -708,6 +708,9 @@ static void PrintCOFFSymbolTable(const COFFObjectFile *coff) {
StringRef Name(AF->FileName,
Symbol->NumberOfAuxSymbols * COFF::SymbolSize);
outs() << "AUX " << Name.rtrim(StringRef("\0", 1)) << '\n';
+
+ SI = SI + Symbol->NumberOfAuxSymbols;
+ break;
} else {
outs() << "AUX Unknown\n";
}