[lldb-moduleimport-test] Validate input to prevent crashes.

This commit is contained in:
Davide Italiano
2018-04-17 11:22:15 -07:00
parent 36c4205e96
commit 5c99c35d24
2 changed files with 38 additions and 0 deletions

View File

@@ -199,6 +199,28 @@ int main(int argc, char **argv) {
DumpTypeFromMangled.removeArgument();
InputNames.removeArgument();
auto validateInputFile = [](std::string Filename) {
if (Filename.empty())
return true;
if (!llvm::sys::fs::exists(llvm::Twine(Filename))) {
llvm::errs() << Filename << " does not exists, exiting.\n";
return false;
}
if (!llvm::sys::fs::is_regular_file(llvm::Twine(Filename))) {
llvm::errs() << Filename << " is not a regular file, exiting.\n";
return false;
}
return true;
};
for (auto &InputFilename : InputNames)
if (!validateInputFile(InputFilename))
return 1;
if (!validateInputFile(DumpTypeFromMangled))
return 1;
if (!validateInputFile(DumpDeclFromMangled))
return 1;
// Fetch the serialized module bitstreams from the Mach-O files and
// register them with the module loader.
llvm::SmallVector<std::pair<char *, uint64_t>, 8> Modules;