summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-14 05:20:52 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-03-14 05:20:52 +0000
commitd9851bd77eb86992f3a0f37e8de3ad39c0234e21 (patch)
tree3ebf07da9aee8259fbb8c4f625613e2903b162b2 /chrome/browser/extensions/api/messaging/native_process_launcher_posix.cc
parent826252a5e0305fa09ed3730f448be3faf34aaeb3 (diff)
downloadchromium_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.cc17
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;
}