From 08465e8000358f3c5f5144f3e745267a97506053 Mon Sep 17 00:00:00 2001 From: Chris Bracken Date: Sun, 16 Dec 2018 14:07:42 -0800 Subject: [PATCH] Verify RunConfiguration is valid before running (#6922) In cases where a valid IsolateConfiguration cannot be inferred, (e.g., settings.kernel_list_asset is missing) RunConfiguration can be created with a null IsolateConfiguration. In such cases, bail out early with kInvalidSettings. Also adds a redundant paranoid check to EmbedderEngine::Run. --- shell/platform/embedder/embedder.cc | 3 +++ shell/platform/embedder/embedder_engine.cc | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/shell/platform/embedder/embedder.cc b/shell/platform/embedder/embedder.cc index d5d5ea51d..516f5919d 100644 --- a/shell/platform/embedder/embedder.cc +++ b/shell/platform/embedder/embedder.cc @@ -384,6 +384,9 @@ FlutterResult FlutterEngineRun(size_t version, run_configuration.AddAssetResolver( std::make_unique(fml::OpenDirectory( settings.assets_path.c_str(), false, fml::FilePermission::kRead))); + if (!run_configuration.IsValid()) { + return kInvalidArguments; + } if (!embedder_engine->Run(std::move(run_configuration))) { return kInvalidArguments; diff --git a/shell/platform/embedder/embedder_engine.cc b/shell/platform/embedder/embedder_engine.cc index 7299e38e3..ef4078cad 100644 --- a/shell/platform/embedder/embedder_engine.cc +++ b/shell/platform/embedder/embedder_engine.cc @@ -47,7 +47,7 @@ bool EmbedderEngine::NotifyDestroyed() { } bool EmbedderEngine::Run(RunConfiguration run_configuration) { - if (!IsValid()) { + if (!IsValid() || !run_configuration.IsValid()) { return false; } -- GitLab