diff options
author | rvargas <rvargas@chromium.org> | 2014-09-24 18:02:31 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-25 01:02:46 +0000 |
commit | 833c1fb479d491e5ac3f9ed83f93a088cb51e4bc (patch) | |
tree | 1e508e32850187983356f3684687c4a30b6273e8 /remoting | |
parent | d87803b74c52fbee3dbaff15a87b75e965ac97c4 (diff) | |
download | chromium_src-833c1fb479d491e5ac3f9ed83f93a088cb51e4bc.zip chromium_src-833c1fb479d491e5ac3f9ed83f93a088cb51e4bc.tar.gz chromium_src-833c1fb479d491e5ac3f9ed83f93a088cb51e4bc.tar.bz2 |
Remove implicit HANDLE conversions from remoting.
BUG=416722
R=garykac@chromium.org
Review URL: https://codereview.chromium.org/602763003
Cr-Commit-Position: refs/heads/master@{#296602}
Diffstat (limited to 'remoting')
-rw-r--r-- | remoting/host/daemon_process_win.cc | 10 | ||||
-rw-r--r-- | remoting/host/desktop_session_proxy.cc | 2 | ||||
-rw-r--r-- | remoting/host/desktop_session_win.cc | 2 | ||||
-rw-r--r-- | remoting/host/ipc_util_win.cc | 2 | ||||
-rw-r--r-- | remoting/host/remoting_me2me_host.cc | 2 | ||||
-rw-r--r-- | remoting/host/setup/daemon_controller_delegate_win.cc | 6 | ||||
-rw-r--r-- | remoting/host/win/chromoting_module.cc | 8 | ||||
-rw-r--r-- | remoting/host/win/elevated_controller.cc | 15 | ||||
-rw-r--r-- | remoting/host/win/launch_process_with_token.cc | 13 | ||||
-rw-r--r-- | remoting/host/win/unprivileged_process_delegate.cc | 12 | ||||
-rw-r--r-- | remoting/host/win/worker_process_launcher.cc | 6 | ||||
-rw-r--r-- | remoting/host/win/worker_process_launcher_unittest.cc | 9 | ||||
-rw-r--r-- | remoting/host/win/wts_session_process_delegate.cc | 18 |
13 files changed, 54 insertions, 51 deletions
diff --git a/remoting/host/daemon_process_win.cc b/remoting/host/daemon_process_win.cc index a67a8db..b4cb9d1 100644 --- a/remoting/host/daemon_process_win.cc +++ b/remoting/host/daemon_process_win.cc @@ -164,7 +164,7 @@ bool DaemonProcessWin::OnDesktopSessionAgentAttached( base::ProcessHandle desktop_process_for_transit; if (!DuplicateHandle(GetCurrentProcess(), desktop_process, - network_process_, + network_process_.Get(), &desktop_process_for_transit, 0, FALSE, @@ -247,7 +247,7 @@ void DaemonProcessWin::DisableAutoStart() { DWORD desired_access = SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS; ScopedScHandle service( - OpenService(scmanager, kWindowsServiceName, desired_access)); + OpenService(scmanager.Get(), kWindowsServiceName, desired_access)); if (!service.IsValid()) { PLOG(INFO) << "Failed to open to the '" << kWindowsServiceName << "' service"; @@ -256,7 +256,7 @@ void DaemonProcessWin::DisableAutoStart() { // Change the service start type to 'manual'. All |NULL| parameters below mean // that there is no change to the corresponding service parameter. - if (!ChangeServiceConfig(service, + if (!ChangeServiceConfig(service.Get(), SERVICE_NO_CHANGE, SERVICE_DEMAND_START, SERVICE_NO_CHANGE, @@ -280,9 +280,9 @@ bool DaemonProcessWin::InitializePairingRegistry() { // Duplicate handles to the network process. IPC::PlatformFileForTransit privileged_key = GetRegistryKeyForTransit( - network_process_, pairing_registry_privileged_key_); + network_process_.Get(), pairing_registry_privileged_key_); IPC::PlatformFileForTransit unprivileged_key = GetRegistryKeyForTransit( - network_process_, pairing_registry_unprivileged_key_); + network_process_.Get(), pairing_registry_unprivileged_key_); if (!(privileged_key && unprivileged_key)) return false; diff --git a/remoting/host/desktop_session_proxy.cc b/remoting/host/desktop_session_proxy.cc index 4cda02a..a33fde5 100644 --- a/remoting/host/desktop_session_proxy.cc +++ b/remoting/host/desktop_session_proxy.cc @@ -248,7 +248,7 @@ bool DesktopSessionProxy::AttachToDesktop( } base::win::ScopedHandle pipe(temp_handle); - IPC::ChannelHandle desktop_channel_handle(pipe); + IPC::ChannelHandle desktop_channel_handle(pipe.Get()); #elif defined(OS_POSIX) // On posix: |desktop_pipe| is a valid file descriptor. diff --git a/remoting/host/desktop_session_win.cc b/remoting/host/desktop_session_win.cc index bb970eb..6005b30 100644 --- a/remoting/host/desktop_session_win.cc +++ b/remoting/host/desktop_session_win.cc @@ -573,7 +573,7 @@ void DesktopSessionWin::OnSessionDetached() { void DesktopSessionWin::OnDesktopSessionAgentAttached( IPC::PlatformFileForTransit desktop_pipe) { if (!daemon_process()->OnDesktopSessionAgentAttached(id(), - desktop_process_, + desktop_process_.Get(), desktop_pipe)) { CrashDesktopProcess(FROM_HERE); } diff --git a/remoting/host/ipc_util_win.cc b/remoting/host/ipc_util_win.cc index a1cdbb2..3eeb4d0 100644 --- a/remoting/host/ipc_util_win.cc +++ b/remoting/host/ipc_util_win.cc @@ -53,7 +53,7 @@ bool CreateConnectedIpcChannel( // Wrap the pipe into an IPC channel. scoped_ptr<IPC::ChannelProxy> server = - IPC::ChannelProxy::Create(IPC::ChannelHandle(pipe), + IPC::ChannelProxy::Create(IPC::ChannelHandle(pipe.Get()), IPC::Channel::MODE_SERVER, listener, io_task_runner); diff --git a/remoting/host/remoting_me2me_host.cc b/remoting/host/remoting_me2me_host.cc index a34a603..0cb6175 100644 --- a/remoting/host/remoting_me2me_host.cc +++ b/remoting/host/remoting_me2me_host.cc @@ -402,7 +402,7 @@ bool HostProcess::InitWithCommandLine(const base::CommandLine* cmd_line) { #if defined(OS_WIN) base::win::ScopedHandle pipe(reinterpret_cast<HANDLE>(pipe_handle)); - IPC::ChannelHandle channel_handle(pipe); + IPC::ChannelHandle channel_handle(pipe.Get()); #elif defined(OS_POSIX) base::FileDescriptor pipe(pipe_handle, true); IPC::ChannelHandle channel_handle(channel_name, pipe); diff --git a/remoting/host/setup/daemon_controller_delegate_win.cc b/remoting/host/setup/daemon_controller_delegate_win.cc index 1f965cd..9ed446e 100644 --- a/remoting/host/setup/daemon_controller_delegate_win.cc +++ b/remoting/host/setup/daemon_controller_delegate_win.cc @@ -98,8 +98,8 @@ DWORD OpenService(ScopedScHandle* service_out) { return error; } - ScopedScHandle service( - ::OpenServiceW(scmanager, kWindowsServiceName, SERVICE_QUERY_STATUS)); + ScopedScHandle service(::OpenServiceW(scmanager.Get(), kWindowsServiceName, + SERVICE_QUERY_STATUS)); if (!service.IsValid()) { DWORD error = GetLastError(); if (error != ERROR_SERVICE_DOES_NOT_EXIST) { @@ -153,7 +153,7 @@ DaemonController::State DaemonControllerDelegateWin::GetState() { switch (error) { case ERROR_SUCCESS: { SERVICE_STATUS status; - if (::QueryServiceStatus(service, &status)) { + if (::QueryServiceStatus(service.Get(), &status)) { return ConvertToDaemonState(status.dwCurrentState); } else { PLOG(ERROR) << "Failed to query the state of the '" diff --git a/remoting/host/win/chromoting_module.cc b/remoting/host/win/chromoting_module.cc index 1d7a37e..d12ab29 100644 --- a/remoting/host/win/chromoting_module.cc +++ b/remoting/host/win/chromoting_module.cc @@ -54,7 +54,7 @@ bool LowerProcessIntegrityLevel(DWORD max_level) { DWORD length = 0; // Get the size of the buffer needed to hold the mandatory label. - BOOL result = GetTokenInformation(token, TokenIntegrityLevel, + BOOL result = GetTokenInformation(token.Get(), TokenIntegrityLevel, mandatory_label.get(), length, &length); if (!result && GetLastError() == ERROR_INSUFFICIENT_BUFFER) { // Allocate a buffer that is large enough. @@ -62,7 +62,7 @@ bool LowerProcessIntegrityLevel(DWORD max_level) { mandatory_label.Swap(buffer); // Get the the mandatory label. - result = GetTokenInformation(token, TokenIntegrityLevel, + result = GetTokenInformation(token.Get(), TokenIntegrityLevel, mandatory_label.get(), length, &length); } if (!result) { @@ -79,8 +79,8 @@ bool LowerProcessIntegrityLevel(DWORD max_level) { // Set the integrity level to |max_level| if needed. if (*current_level > max_level) { *current_level = max_level; - if (!SetTokenInformation(token, TokenIntegrityLevel, mandatory_label.get(), - length)) { + if (!SetTokenInformation(token.Get(), TokenIntegrityLevel, + mandatory_label.get(), length)) { PLOG(ERROR) << "Failed to set the mandatory label"; return false; } diff --git a/remoting/host/win/elevated_controller.cc b/remoting/host/win/elevated_controller.cc index fc5aebe..07b620e 100644 --- a/remoting/host/win/elevated_controller.cc +++ b/remoting/host/win/elevated_controller.cc @@ -114,7 +114,7 @@ HRESULT ReadConfig(const base::FilePath& filename, scoped_ptr<char[]> buffer(new char[kMaxConfigFileSize]); DWORD size = kMaxConfigFileSize; - if (!::ReadFile(file, &buffer[0], size, &size, NULL)) { + if (!::ReadFile(file.Get(), &buffer[0], size, &size, NULL)) { DWORD error = GetLastError(); PLOG(ERROR) << "Failed to read '" << filename.value() << "'"; return HRESULT_FROM_WIN32(error); @@ -177,7 +177,8 @@ HRESULT WriteConfigFileToTemp(const base::FilePath& filename, } DWORD written; - if (!WriteFile(file, content, static_cast<DWORD>(length), &written, NULL)) { + if (!WriteFile(file.Get(), content, static_cast<DWORD>(length), &written, + NULL)) { DWORD error = GetLastError(); PLOG(ERROR) << "Failed to write to '" << filename.value() << "'"; return HRESULT_FROM_WIN32(error); @@ -372,7 +373,7 @@ STDMETHODIMP ElevatedController::StartDaemon() { } // Change the service start type to 'auto'. - if (!::ChangeServiceConfigW(service, + if (!::ChangeServiceConfigW(service.Get(), SERVICE_NO_CHANGE, SERVICE_AUTO_START, SERVICE_NO_CHANGE, @@ -390,7 +391,7 @@ STDMETHODIMP ElevatedController::StartDaemon() { } // Start the service. - if (!StartService(service, 0, NULL)) { + if (!StartService(service.Get(), 0, NULL)) { DWORD error = GetLastError(); if (error != ERROR_SERVICE_ALREADY_RUNNING) { PLOG(ERROR) << "Failed to start the '" << kWindowsServiceName @@ -411,7 +412,7 @@ STDMETHODIMP ElevatedController::StopDaemon() { } // Change the service start type to 'manual'. - if (!::ChangeServiceConfigW(service, + if (!::ChangeServiceConfigW(service.Get(), SERVICE_NO_CHANGE, SERVICE_DEMAND_START, SERVICE_NO_CHANGE, @@ -430,7 +431,7 @@ STDMETHODIMP ElevatedController::StopDaemon() { // Stop the service. SERVICE_STATUS status; - if (!ControlService(service, SERVICE_CONTROL_STOP, &status)) { + if (!ControlService(service.Get(), SERVICE_CONTROL_STOP, &status)) { DWORD error = GetLastError(); if (error != ERROR_SERVICE_NOT_ACTIVE) { PLOG(ERROR) << "Failed to stop the '" << kWindowsServiceName @@ -513,7 +514,7 @@ HRESULT ElevatedController::OpenService(ScopedScHandle* service_out) { DWORD desired_access = SERVICE_CHANGE_CONFIG | SERVICE_QUERY_STATUS | SERVICE_START | SERVICE_STOP; ScopedScHandle service( - ::OpenServiceW(scmanager, kWindowsServiceName, desired_access)); + ::OpenServiceW(scmanager.Get(), kWindowsServiceName, desired_access)); if (!service.IsValid()) { error = GetLastError(); PLOG(ERROR) << "Failed to open to the '" << kWindowsServiceName diff --git a/remoting/host/win/launch_process_with_token.cc b/remoting/host/win/launch_process_with_token.cc index afc6149..f37abc7 100644 --- a/remoting/host/win/launch_process_with_token.cc +++ b/remoting/host/win/launch_process_with_token.cc @@ -132,7 +132,7 @@ bool CopyProcessToken(DWORD desired_access, ScopedHandle* token_out) { } ScopedHandle process_token(temp_handle); - if (!DuplicateTokenEx(process_token, + if (!DuplicateTokenEx(process_token.Get(), desired_access, NULL, SecurityImpersonation, @@ -165,7 +165,8 @@ bool CreatePrivilegedToken(ScopedHandle* token_out) { } // Enable the SE_TCB_NAME privilege. - if (!AdjustTokenPrivileges(privileged_token, FALSE, &state, 0, NULL, 0)) { + if (!AdjustTokenPrivileges(privileged_token.Get(), FALSE, &state, 0, NULL, + 0)) { PLOG(ERROR) << "Failed to enable SE_TCB_NAME privilege in a token"; return false; } @@ -380,13 +381,13 @@ bool CreateRemoteSessionProcess( if (!ConnectToExecutionServer(session_id, &pipe)) return false; - if (!SendCreateProcessRequest(pipe, application_name, command_line, + if (!SendCreateProcessRequest(pipe.Get(), application_name, command_line, creation_flags, desktop_name)) { return false; } PROCESS_INFORMATION process_information; - if (!ReceiveCreateProcessResponse(pipe, &process_information)) + if (!ReceiveCreateProcessResponse(pipe.Get(), &process_information)) return false; if (!ProcessCreateProcessResponse(creation_flags, &process_information)) { @@ -421,14 +422,14 @@ bool CreateSessionToken(uint32 session_id, ScopedHandle* token_out) { if (!CreatePrivilegedToken(&privileged_token)) { return false; } - if (!ImpersonateLoggedOnUser(privileged_token)) { + if (!ImpersonateLoggedOnUser(privileged_token.Get())) { PLOG(ERROR) << "Failed to impersonate the privileged token"; return false; } // Change the session ID of the token. DWORD new_session_id = session_id; - if (!SetTokenInformation(session_token, + if (!SetTokenInformation(session_token.Get(), TokenSessionId, &new_session_id, sizeof(new_session_id))) { diff --git a/remoting/host/win/unprivileged_process_delegate.cc b/remoting/host/win/unprivileged_process_delegate.cc index 69a45aa..9b22a70 100644 --- a/remoting/host/win/unprivileged_process_delegate.cc +++ b/remoting/host/win/unprivileged_process_delegate.cc @@ -83,7 +83,7 @@ bool CreateRestrictedToken(ScopedHandle* token_out) { ScopedHandle token(temp_handle); sandbox::RestrictedToken restricted_token; - if (restricted_token.Init(token) != ERROR_SUCCESS) + if (restricted_token.Init(token.Get()) != ERROR_SUCCESS) return false; // Remove all privileges in the token. @@ -245,7 +245,7 @@ void UnprivilegedProcessDelegate::LaunchProcess( // Determine our logon SID, so we can grant it access to our window station // and desktop. - ScopedSid logon_sid = GetLogonSid(token); + ScopedSid logon_sid = GetLogonSid(token.Get()); if (!logon_sid) { PLOG(ERROR) << "Failed to retrieve the logon SID"; ReportFatalError(); @@ -306,7 +306,7 @@ void UnprivilegedProcessDelegate::LaunchProcess( ScopedHandle worker_thread; if (!LaunchProcessWithToken(command_line.GetProgram(), command_line.GetCommandLineString(), - token, + token.Get(), &process_attributes, &thread_attributes, true, @@ -346,7 +346,7 @@ void UnprivilegedProcessDelegate::KillProcess() { event_handler_ = NULL; if (worker_process_.IsValid()) { - TerminateProcess(worker_process_, CONTROL_C_EXIT); + TerminateProcess(worker_process_.Get(), CONTROL_C_EXIT); worker_process_.Close(); } } @@ -361,7 +361,7 @@ bool UnprivilegedProcessDelegate::OnMessageReceived( void UnprivilegedProcessDelegate::OnChannelConnected(int32 peer_pid) { DCHECK(CalledOnValidThread()); - DWORD pid = GetProcessId(worker_process_); + DWORD pid = GetProcessId(worker_process_.Get()); if (pid != static_cast<DWORD>(peer_pid)) { LOG(ERROR) << "The actual client PID " << pid << " does not match the one reported by the client: " @@ -402,7 +402,7 @@ void UnprivilegedProcessDelegate::ReportProcessLaunched( SYNCHRONIZE | PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION; HANDLE temp_handle; if (!DuplicateHandle(GetCurrentProcess(), - worker_process_, + worker_process_.Get(), GetCurrentProcess(), &temp_handle, desired_access, diff --git a/remoting/host/win/worker_process_launcher.cc b/remoting/host/win/worker_process_launcher.cc index f7d89ef..3d01572 100644 --- a/remoting/host/win/worker_process_launcher.cc +++ b/remoting/host/win/worker_process_launcher.cc @@ -113,7 +113,7 @@ void WorkerProcessLauncher::OnProcessLaunched( DCHECK(!process_watcher_.GetWatchedObject()); DCHECK(!worker_process_.IsValid()); - if (!process_watcher_.StartWatching(worker_process, this)) { + if (!process_watcher_.StartWatching(worker_process.Get(), this)) { StopWorker(); return; } @@ -167,10 +167,10 @@ void WorkerProcessLauncher::OnObjectSignaled(HANDLE object) { DCHECK(CalledOnValidThread()); DCHECK(!process_watcher_.GetWatchedObject()); DCHECK_EQ(exit_code_, CONTROL_C_EXIT); - DCHECK_EQ(worker_process_, object); + DCHECK_EQ(worker_process_.Get(), object); // Get exit code of the worker process if it is available. - if (!::GetExitCodeProcess(worker_process_, &exit_code_)) { + if (!::GetExitCodeProcess(worker_process_.Get(), &exit_code_)) { PLOG(INFO) << "Failed to query the exit code of the worker process"; exit_code_ = CONTROL_C_EXIT; } diff --git a/remoting/host/win/worker_process_launcher_unittest.cc b/remoting/host/win/worker_process_launcher_unittest.cc index e47d2fa2..32c00c2 100644 --- a/remoting/host/win/worker_process_launcher_unittest.cc +++ b/remoting/host/win/worker_process_launcher_unittest.cc @@ -262,14 +262,14 @@ void WorkerProcessLauncherTest::KillProcess() { event_handler_ = NULL; if (worker_process_.IsValid()) { - TerminateProcess(worker_process_, CONTROL_C_EXIT); + TerminateProcess(worker_process_.Get(), CONTROL_C_EXIT); worker_process_.Close(); } } void WorkerProcessLauncherTest::TerminateWorker(DWORD exit_code) { if (worker_process_.IsValid()) - TerminateProcess(worker_process_, exit_code); + TerminateProcess(worker_process_.Get(), exit_code); } void WorkerProcessLauncherTest::ConnectClient() { @@ -362,11 +362,12 @@ void WorkerProcessLauncherTest::DoLaunchProcess() { // Wrap the pipe into an IPC channel. channel_server_ = IPC::ChannelProxy::Create( - IPC::ChannelHandle(pipe), IPC::Channel::MODE_SERVER, this, task_runner_); + IPC::ChannelHandle(pipe.Get()), IPC::Channel::MODE_SERVER, this, + task_runner_); HANDLE temp_handle; ASSERT_TRUE(DuplicateHandle(GetCurrentProcess(), - worker_process_, + worker_process_.Get(), GetCurrentProcess(), &temp_handle, 0, diff --git a/remoting/host/win/wts_session_process_delegate.cc b/remoting/host/win/wts_session_process_delegate.cc index eb310df..c05ac90 100644 --- a/remoting/host/win/wts_session_process_delegate.cc +++ b/remoting/host/win/wts_session_process_delegate.cc @@ -188,7 +188,7 @@ bool WtsSessionProcessDelegate::Core::Initialize(uint32 session_id) { info.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_ACTIVE_PROCESS | JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE; info.BasicLimitInformation.ActiveProcessLimit = 2; - if (!SetInformationJobObject(job, + if (!SetInformationJobObject(job.Get(), JobObjectExtendedLimitInformation, &info, sizeof(info))) { @@ -261,10 +261,10 @@ void WtsSessionProcessDelegate::Core::KillProcess() { if (launch_elevated_) { if (job_.IsValid()) - TerminateJobObject(job_, CONTROL_C_EXIT); + TerminateJobObject(job_.Get(), CONTROL_C_EXIT); } else { if (worker_process_.IsValid()) - TerminateProcess(worker_process_, CONTROL_C_EXIT); + TerminateProcess(worker_process_.Get(), CONTROL_C_EXIT); } worker_process_.Close(); @@ -306,7 +306,7 @@ void WtsSessionProcessDelegate::Core::OnChannelConnected(int32 peer_pid) { // protection against a malicious processed connecting to the pipe. if (launch_elevated_) { DWORD pid; - if (!get_named_pipe_client_pid_(pipe_, &pid)) { + if (!get_named_pipe_client_pid_(pipe_.Get(), &pid)) { PLOG(ERROR) << "Failed to retrive PID of the client"; ReportFatalError(); return; @@ -380,7 +380,7 @@ void WtsSessionProcessDelegate::Core::DoLaunchProcess() { // Wrap the pipe into an IPC channel. scoped_ptr<IPC::ChannelProxy> channel( - IPC::ChannelProxy::Create(IPC::ChannelHandle(pipe), + IPC::ChannelProxy::Create(IPC::ChannelHandle(pipe.Get()), IPC::Channel::MODE_SERVER, this, io_task_runner_)); @@ -394,7 +394,7 @@ void WtsSessionProcessDelegate::Core::DoLaunchProcess() { ScopedHandle worker_thread; if (!LaunchProcessWithToken(command_line.GetProgram(), command_line.GetCommandLineString(), - session_token_, + session_token_.Get(), NULL, NULL, false, @@ -407,14 +407,14 @@ void WtsSessionProcessDelegate::Core::DoLaunchProcess() { } if (launch_elevated_) { - if (!AssignProcessToJobObject(job_, worker_process)) { + if (!AssignProcessToJobObject(job_.Get(), worker_process.Get())) { PLOG(ERROR) << "Failed to assign the worker to the job object"; ReportFatalError(); return; } } - if (!ResumeThread(worker_thread)) { + if (!ResumeThread(worker_thread.Get())) { PLOG(ERROR) << "Failed to resume the worker thread"; ReportFatalError(); return; @@ -513,7 +513,7 @@ void WtsSessionProcessDelegate::Core::ReportProcessLaunched( SYNCHRONIZE | PROCESS_DUP_HANDLE | PROCESS_QUERY_INFORMATION; HANDLE temp_handle; if (!DuplicateHandle(GetCurrentProcess(), - worker_process_, + worker_process_.Get(), GetCurrentProcess(), &temp_handle, desired_access, |