diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 05:20:52 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-03-14 05:20:52 +0000 |
commit | d9851bd77eb86992f3a0f37e8de3ad39c0234e21 (patch) | |
tree | 3ebf07da9aee8259fbb8c4f625613e2903b162b2 /chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc | |
parent | 826252a5e0305fa09ed3730f448be3faf34aaeb3 (diff) | |
download | chromium_src-d9851bd77eb86992f3a0f37e8de3ad39c0234e21.zip chromium_src-d9851bd77eb86992f3a0f37e8de3ad39c0234e21.tar.gz chromium_src-d9851bd77eb86992f3a0f37e8de3ad39c0234e21.tar.bz2 |
Implement ScopedFD in terms of ScopedGeneric.
Move to a new file base/files/scoped_file.h. I will also add ScopedFILE to here (currently in file_util.h) later.
I think there is a crash in the old code in content/browser/zygote_host/zygote_host_impl_linux.cc that this patch should fix. The old ScopedFD took the address of something in a vector that is being modified.
I removed SafeScopedFD from content/common/sandbox_linux/sandbox_linux.cc since base's ScopedFD not CHECKs on close failure (this is a more recent addition).
BUG=
R=agl@chromium.org, viettrungluu@chromium.org
Review URL: https://codereview.chromium.org/191673003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@257001 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc')
-rw-r--r-- | chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc b/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc index f4523fc..70353d3 100644 --- a/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc +++ b/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc @@ -6,6 +6,7 @@ #include "base/command_line.h" #include "base/file_util.h" +#include "base/files/scoped_file.h" #include "base/logging.h" #include "base/path_service.h" #include "base/posix/eintr_wrapper.h" @@ -58,18 +59,18 @@ bool NativeProcessLauncher::LaunchNativeProcess( LOG(ERROR) << "Bad read pipe"; return false; } - file_util::ScopedFD read_pipe_read_fd(&read_pipe_fds[0]); - file_util::ScopedFD read_pipe_write_fd(&read_pipe_fds[1]); - fd_map.push_back(std::make_pair(*read_pipe_write_fd, STDOUT_FILENO)); + base::ScopedFD read_pipe_read_fd(read_pipe_fds[0]); + base::ScopedFD read_pipe_write_fd(read_pipe_fds[1]); + fd_map.push_back(std::make_pair(read_pipe_write_fd.get(), STDOUT_FILENO)); int write_pipe_fds[2] = {0}; if (HANDLE_EINTR(pipe(write_pipe_fds)) != 0) { LOG(ERROR) << "Bad write pipe"; return false; } - file_util::ScopedFD write_pipe_read_fd(&write_pipe_fds[0]); - file_util::ScopedFD write_pipe_write_fd(&write_pipe_fds[1]); - fd_map.push_back(std::make_pair(*write_pipe_read_fd, STDIN_FILENO)); + base::ScopedFD write_pipe_read_fd(write_pipe_fds[0]); + base::ScopedFD write_pipe_write_fd(write_pipe_fds[1]); + fd_map.push_back(std::make_pair(write_pipe_read_fd.get(), STDIN_FILENO)); base::LaunchOptions options; options.fds_to_remap = &fd_map; @@ -82,8 +83,8 @@ bool NativeProcessLauncher::LaunchNativeProcess( write_pipe_read_fd.reset(); read_pipe_write_fd.reset(); - *read_file = *read_pipe_read_fd.release(); - *write_file = *write_pipe_write_fd.release(); + *read_file = read_pipe_read_fd.release(); + *write_file = write_pipe_write_fd.release(); return true; } |