Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(504)

Side by Side Diff: sandbox/win/sandbox_poc/main_ui_window.cc

Issue 2456573002: Revert "Fix sandbox::PolicyBase leak" (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « content/common/sandbox_win.cc ('k') | sandbox/win/src/broker_services.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2014 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/sandbox_poc/main_ui_window.h" 5 #include "sandbox/win/sandbox_poc/main_ui_window.h"
6 6
7 #include <windows.h> 7 #include <windows.h>
8 #include <CommCtrl.h> 8 #include <CommCtrl.h>
9 #include <commdlg.h> 9 #include <commdlg.h>
10 #include <stdarg.h> 10 #include <stdarg.h>
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
493 return false; 493 return false;
494 } 494 }
495 495
496 wchar_t * arguments = new wchar_t[size_call]; 496 wchar_t * arguments = new wchar_t[size_call];
497 wnsprintf(arguments, static_cast<int>(size_call), L"%ls %ls \"%ls\" %ls", 497 wnsprintf(arguments, static_cast<int>(size_call), L"%ls %ls \"%ls\" %ls",
498 spawn_target_.c_str(), entry_point_.c_str(), 498 spawn_target_.c_str(), entry_point_.c_str(),
499 dll_path_.c_str(), log_pipe); 499 dll_path_.c_str(), log_pipe);
500 500
501 arguments[size_call - 1] = L'\0'; 501 arguments[size_call - 1] = L'\0';
502 502
503 scoped_refptr<sandbox::TargetPolicy> policy = broker_->CreatePolicy(); 503 sandbox::TargetPolicy* policy = broker_->CreatePolicy();
504 policy->SetJobLevel(sandbox::JOB_LOCKDOWN, 0); 504 policy->SetJobLevel(sandbox::JOB_LOCKDOWN, 0);
505 policy->SetTokenLevel(sandbox::USER_RESTRICTED_SAME_ACCESS, 505 policy->SetTokenLevel(sandbox::USER_RESTRICTED_SAME_ACCESS,
506 sandbox::USER_LOCKDOWN); 506 sandbox::USER_LOCKDOWN);
507 policy->SetAlternateDesktop(true); 507 policy->SetAlternateDesktop(true);
508 policy->SetDelayedIntegrityLevel(sandbox::INTEGRITY_LEVEL_LOW); 508 policy->SetDelayedIntegrityLevel(sandbox::INTEGRITY_LEVEL_LOW);
509 509
510 // Set the rule to allow the POC dll to be loaded by the target. Note that 510 // Set the rule to allow the POC dll to be loaded by the target. Note that
511 // the rule allows 'all access' to the DLL, which could mean that the target 511 // the rule allows 'all access' to the DLL, which could mean that the target
512 // could modify the DLL on disk. 512 // could modify the DLL on disk.
513 policy->AddRule(sandbox::TargetPolicy::SUBSYS_FILES, 513 policy->AddRule(sandbox::TargetPolicy::SUBSYS_FILES,
514 sandbox::TargetPolicy::FILES_ALLOW_ANY, dll_path_.c_str()); 514 sandbox::TargetPolicy::FILES_ALLOW_ANY, dll_path_.c_str());
515 515
516 sandbox::ResultCode warning_result = sandbox::SBOX_ALL_OK; 516 sandbox::ResultCode warning_result = sandbox::SBOX_ALL_OK;
517 DWORD last_error = ERROR_SUCCESS; 517 DWORD last_error = ERROR_SUCCESS;
518 sandbox::ResultCode result = 518 sandbox::ResultCode result =
519 broker_->SpawnTarget(spawn_target_.c_str(), arguments, policy, 519 broker_->SpawnTarget(spawn_target_.c_str(), arguments, policy,
520 &warning_result, &last_error, &target_); 520 &warning_result, &last_error, &target_);
521 521
522 policy->Release();
522 policy = NULL; 523 policy = NULL;
523 524
524 bool return_value = false; 525 bool return_value = false;
525 if (sandbox::SBOX_ALL_OK != result) { 526 if (sandbox::SBOX_ALL_OK != result) {
526 AddDebugMessage( 527 AddDebugMessage(
527 L"Failed to spawn target %ls w/args (%ls), sandbox error code: %d", 528 L"Failed to spawn target %ls w/args (%ls), sandbox error code: %d",
528 spawn_target_.c_str(), arguments, result); 529 spawn_target_.c_str(), arguments, result);
529 return_value = false; 530 return_value = false;
530 } else { 531 } else {
531 DWORD thread_id; 532 DWORD thread_id;
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 item.iItem = ListView_GetItemCount(list_view_); 656 item.iItem = ListView_GetItemCount(list_view_);
656 item.iSubItem = 0; 657 item.iSubItem = 0;
657 item.mask = LVIF_TEXT | LVIF_PARAM; 658 item.mask = LVIF_TEXT | LVIF_PARAM;
658 item.pszText = message_time; 659 item.pszText = message_time;
659 item.lParam = 0; 660 item.lParam = 0;
660 661
661 ListView_InsertItem(list_view_, &item); 662 ListView_InsertItem(list_view_, &item);
662 663
663 delete[] message_time; 664 delete[] message_time;
664 } 665 }
OLDNEW
« no previous file with comments | « content/common/sandbox_win.cc ('k') | sandbox/win/src/broker_services.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698