diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 19:45:58 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 19:45:58 +0000 |
commit | 37dafba713be9bb422b274e05d932cc91bd72b7c (patch) | |
tree | c28dcefd39b0ae5a2bc259bf80b614bd00a9e72a /llvm/tools/llvm-readobj/COFFDumper.cpp | |
parent | b343310b4f500f9274d1c659a3b9cab6ecce6651 (diff) | |
download | bcm5719-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.cpp | 2 |
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); } } |