summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/COFFDumper.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-05-28 20:04:48 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-05-28 20:04:48 +0000
commitefaaf410a651dbba0a62ea8489cc1d8ab1b36d26 (patch)
treeb6da75856b24d8ecd2d2d490839ddb99a0d1c8d3 /llvm/tools/llvm-readobj/COFFDumper.cpp
parentc6cb2ec36ea5a3c149b58a3bb28dccafaa8ceaa0 (diff)
downloadbcm5719-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.cpp5
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);
}
}
OpenPOWER on IntegriCloud