From fff4720f2c34fea9e8400255ea34af3fe2f07d8b 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 (flutter/engine#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. --- engine/src/flutter/shell/platform/embedder/embedder.cc | 3 +++ engine/src/flutter/shell/platform/embedder/embedder_engine.cc | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/engine/src/flutter/shell/platform/embedder/embedder.cc b/engine/src/flutter/shell/platform/embedder/embedder.cc index d5d5ea51d9..516f5919d5 100644 --- a/engine/src/flutter/shell/platform/embedder/embedder.cc +++ b/engine/src/flutter/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/engine/src/flutter/shell/platform/embedder/embedder_engine.cc b/engine/src/flutter/shell/platform/embedder/embedder_engine.cc index 7299e38e37..ef4078cade 100644 --- a/engine/src/flutter/shell/platform/embedder/embedder_engine.cc +++ b/engine/src/flutter/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; }