summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/COFFDumper.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-05-28 19:45:58 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-05-28 19:45:58 +0000
commit37dafba713be9bb422b274e05d932cc91bd72b7c (patch)
treec28dcefd39b0ae5a2bc259bf80b614bd00a9e72a /llvm/tools/llvm-readobj/COFFDumper.cpp
parentb343310b4f500f9274d1c659a3b9cab6ecce6651 (diff)
downloadbcm5719-llvm-37dafba713be9bb422b274e05d932cc91bd72b7c.tar.gz
bcm5719-llvm-37dafba713be9bb422b274e05d932cc91bd72b7c.zip
[COFFDumper] Make sure there is sufficient padding left in the checksum
llvm-svn: 271143
Diffstat (limited to 'llvm/tools/llvm-readobj/COFFDumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/COFFDumper.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp
index 8bad24baf9a..6fc57e83e9c 100644
--- a/llvm/tools/llvm-readobj/COFFDumper.cpp
+++ b/llvm/tools/llvm-readobj/COFFDumper.cpp
@@ -940,6 +940,8 @@ void COFFDumper::printCodeViewFileChecksums(StringRef Subsection) {
W.printBinary("ChecksumBytes", ChecksumBytes);
unsigned PaddedSize = alignTo(FC->ChecksumSize + sizeof(FileChecksum), 4) -
sizeof(FileChecksum);
+ if (PaddedSize > Data.size())
+ error(object_error::parse_failed);
Data = Data.drop_front(PaddedSize);
}
}
OpenPOWER on IntegriCloud