diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 20:04:50 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 20:04:50 +0000 |
commit | cab2b461efb62b80fa00761cef9b03391ae533c9 (patch) | |
tree | 8d5b2270bc41520a8c379dbeadbd6012b16c696c /llvm/tools/llvm-readobj/COFFDumper.cpp | |
parent | efaaf410a651dbba0a62ea8489cc1d8ab1b36d26 (diff) | |
download | bcm5719-llvm-cab2b461efb62b80fa00761cef9b03391ae533c9.tar.gz bcm5719-llvm-cab2b461efb62b80fa00761cef9b03391ae533c9.zip |
[COFFDumper] Validate that the next offset is not too large
llvm-svn: 271147
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 a216a05e96f..029674b8d63 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -736,6 +736,8 @@ void COFFDumper::printCodeViewSymbolSection(StringRef SectionName, size_t SectionOffset = Data.data() - SectionContents.data(); size_t NextOffset = SectionOffset + SubSectionSize; NextOffset = alignTo(NextOffset, 4); + if (NextOffset > SectionContents.size()) + return error(object_error::parse_failed); Data = SectionContents.drop_front(NextOffset); // Optionally print the subsection bytes in case our parsing gets confused |