[clangd] Harden clangd a bit against garbage input.
There can be nullptrs here if the YAML fails to parse. Found by clangd-fuzzer! llvm-svn: 316770
This commit is contained in:
parent
cc6ea8e74f
commit
decd8a702a
|
@ -88,11 +88,7 @@ bool JSONRPCDispatcher::call(StringRef Content, JSONOutput &Out) const {
|
|||
if (Doc == YAMLStream.end())
|
||||
return false;
|
||||
|
||||
auto *Root = Doc->getRoot();
|
||||
if (!Root)
|
||||
return false;
|
||||
|
||||
auto *Object = dyn_cast<llvm::yaml::MappingNode>(Root);
|
||||
auto *Object = dyn_cast_or_null<llvm::yaml::MappingNode>(Doc->getRoot());
|
||||
if (!Object)
|
||||
return false;
|
||||
|
||||
|
@ -101,7 +97,8 @@ bool JSONRPCDispatcher::call(StringRef Content, JSONOutput &Out) const {
|
|||
llvm::yaml::MappingNode *Params = nullptr;
|
||||
llvm::yaml::ScalarNode *Id = nullptr;
|
||||
for (auto &NextKeyValue : *Object) {
|
||||
auto *KeyString = dyn_cast<llvm::yaml::ScalarNode>(NextKeyValue.getKey());
|
||||
auto *KeyString =
|
||||
dyn_cast_or_null<llvm::yaml::ScalarNode>(NextKeyValue.getKey());
|
||||
if (!KeyString)
|
||||
return false;
|
||||
|
||||
|
|
Loading…
Reference in New Issue