diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 20:04:48 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-05-28 20:04:48 +0000 |
commit | efaaf410a651dbba0a62ea8489cc1d8ab1b36d26 (patch) | |
tree | b6da75856b24d8ecd2d2d490839ddb99a0d1c8d3 /llvm/tools/llvm-readobj/COFFDumper.cpp | |
parent | c6cb2ec36ea5a3c149b58a3bb28dccafaa8ceaa0 (diff) | |
download | bcm5719-llvm-efaaf410a651dbba0a62ea8489cc1d8ab1b36d26.tar.gz bcm5719-llvm-efaaf410a651dbba0a62ea8489cc1d8ab1b36d26.zip |
[COFFDumper] Make sure there is sufficient padding left in the string table
llvm-svn: 271146
Diffstat (limited to 'llvm/tools/llvm-readobj/COFFDumper.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/COFFDumper.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/COFFDumper.cpp b/llvm/tools/llvm-readobj/COFFDumper.cpp index 6fc57e83e9c..a216a05e96f 100644 --- a/llvm/tools/llvm-readobj/COFFDumper.cpp +++ b/llvm/tools/llvm-readobj/COFFDumper.cpp @@ -687,7 +687,10 @@ void COFFDumper::initializeFileAndStringTables(StringRef Data) { default: break; } - Data = Data.drop_front(alignTo(SubSectionSize, 4)); + uint32_t PaddedSize = alignTo(SubSectionSize, 4); + if (PaddedSize > Data.size()) + error(object_error::parse_failed); + Data = Data.drop_front(PaddedSize); } } |