Windows: Fix crash when |sandbox_info| parameter is nullptr (fixes issue #3210)

This commit is contained in:
Marshall Greenblatt 2021-11-08 14:18:25 -05:00
parent 3a2a22f30d
commit 2c9055a8bd
2 changed files with 23 additions and 0 deletions

View File

@ -559,5 +559,10 @@ patches = [
# declared with 'nodiscard' attribute [-Werror,-Wunused-result]
# https://chromium-review.googlesource.com/c/chromium/src/+/3237648
'name': 'base_thread_restrictions_3237648',
},
{
# Windows: Fix crash when |sandbox_info| parameter is nullptr.
# https://bitbucket.org/chromiumembedded/cef/issues/3210
'name': 'win_sandbox_3210',
}
]

View File

@ -0,0 +1,18 @@
diff --git sandbox/policy/win/sandbox_win.cc sandbox/policy/win/sandbox_win.cc
index f4f23deab53f0..d1a5739983024 100644
--- sandbox/policy/win/sandbox_win.cc
+++ sandbox/policy/win/sandbox_win.cc
@@ -1148,6 +1148,13 @@ ResultCode SandboxWin::StartSandboxedProcess(
const base::HandlesToInheritVector& handles_to_inherit,
SandboxDelegate* delegate,
base::Process* process) {
+ // Will be nullptr if SandboxInterfaceInfo was not initialized by the CEF
+ // client, meaning that the sandbox is implicitly disabled.
+ if (!g_broker_services) {
+ return LaunchWithoutSandbox(cmd_line, handles_to_inherit, delegate,
+ process);
+ }
+
scoped_refptr<TargetPolicy> policy = g_broker_services->CreatePolicy();
ResultCode result = GeneratePolicyForSandboxedProcess(
cmd_line, process_type, handles_to_inherit, delegate, policy);