| Index: sandbox/win/src/broker_services.cc
|
| diff --git a/sandbox/win/src/broker_services.cc b/sandbox/win/src/broker_services.cc
|
| index 8fa7f0d655168a5427287a72228c8f036c4646e4..5d8061fd48998b0af36f72144409dbcd05a9d837 100644
|
| --- a/sandbox/win/src/broker_services.cc
|
| +++ b/sandbox/win/src/broker_services.cc
|
| @@ -401,6 +401,11 @@ ResultCode BrokerServicesBase::SpawnTarget(const wchar_t* exe_path,
|
|
|
| // Initialize the startup information from the policy.
|
| base::win::StartupInformation startup_info;
|
| + // The liftime of |mitigations| has to be at least as long as |startup_info|
|
| + // because |UpdateProcThreadAttribute| requires that its |lpValue| parameter
|
| + // persist until |DeleteProcThreadAttributeList| is called;
|
| + // StartupInformation's destructor makes such a call.
|
| + DWORD64 mitigations;
|
| base::string16 desktop = policy_base->GetAlternateDesktop();
|
| if (!desktop.empty()) {
|
| startup_info.startup_info()->lpDesktop =
|
| @@ -415,7 +420,6 @@ ResultCode BrokerServicesBase::SpawnTarget(const wchar_t* exe_path,
|
| if (app_container)
|
| ++attribute_count;
|
|
|
| - DWORD64 mitigations;
|
| size_t mitigations_size;
|
| ConvertProcessMitigationsToPolicy(policy->GetProcessMitigations(),
|
| &mitigations, &mitigations_size);
|
|
|