OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sandbox/win/src/broker_services.h" | 5 #include "sandbox/win/src/broker_services.h" |
6 | 6 |
7 #include <AclAPI.h> | 7 #include <AclAPI.h> |
8 | 8 |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 } | 489 } |
490 | 490 |
491 // Construct the thread pool here in case it is expensive. | 491 // Construct the thread pool here in case it is expensive. |
492 // The thread pool is shared by all the targets | 492 // The thread pool is shared by all the targets |
493 if (NULL == thread_pool_) | 493 if (NULL == thread_pool_) |
494 thread_pool_ = new Win2kThreadPool(); | 494 thread_pool_ = new Win2kThreadPool(); |
495 | 495 |
496 // Create the TargetProces object and spawn the target suspended. Note that | 496 // Create the TargetProces object and spawn the target suspended. Note that |
497 // Brokerservices does not own the target object. It is owned by the Policy. | 497 // Brokerservices does not own the target object. It is owned by the Policy. |
498 base::win::ScopedProcessInformation process_info; | 498 base::win::ScopedProcessInformation process_info; |
499 TargetProcess* target = new TargetProcess(initial_token.Take(), | 499 TargetProcess* target = new TargetProcess(initial_token.Pass(), |
500 lockdown_token.Take(), | 500 lockdown_token.Pass(), |
501 job.Get(), | 501 job.Get(), |
502 thread_pool_); | 502 thread_pool_); |
503 | 503 |
504 DWORD win_result = target->Create(exe_path, command_line, inherit_handles, | 504 DWORD win_result = target->Create(exe_path, command_line, inherit_handles, |
505 policy_base->GetLowBoxSid() ? true : false, | 505 policy_base->GetLowBoxSid() ? true : false, |
506 startup_info, &process_info); | 506 startup_info, &process_info); |
507 | 507 |
508 policy_base->ClearSharedHandles(); | 508 policy_base->ClearSharedHandles(); |
509 | 509 |
510 if (ERROR_SUCCESS != win_result) { | 510 if (ERROR_SUCCESS != win_result) { |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
619 return SBOX_ERROR_UNSUPPORTED; | 619 return SBOX_ERROR_UNSUPPORTED; |
620 | 620 |
621 base::string16 name = LookupAppContainer(sid); | 621 base::string16 name = LookupAppContainer(sid); |
622 if (name.empty()) | 622 if (name.empty()) |
623 return SBOX_ERROR_INVALID_APP_CONTAINER; | 623 return SBOX_ERROR_INVALID_APP_CONTAINER; |
624 | 624 |
625 return DeleteAppContainer(sid); | 625 return DeleteAppContainer(sid); |
626 } | 626 } |
627 | 627 |
628 } // namespace sandbox | 628 } // namespace sandbox |
OLD | NEW |