diff options
author | bradchen@google.com <bradchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-22 06:57:52 +0000 |
---|---|---|
committer | bradchen@google.com <bradchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-22 06:57:52 +0000 |
commit | 3486a1e065cf1288c2b206e1c99c2ce461584644 (patch) | |
tree | a2f74f7cde1dbcda04ac0bea82fa5966e38413bd /chrome/nacl | |
parent | ae03a139cdf9094c0162b33a76df414ac2d68502 (diff) | |
download | chromium_src-3486a1e065cf1288c2b206e1c99c2ce461584644.zip chromium_src-3486a1e065cf1288c2b206e1c99c2ce461584644.tar.gz chromium_src-3486a1e065cf1288c2b206e1c99c2ce461584644.tar.bz2 |
Fix error handling on close() calls.
BUG=89914
TEST=clean error logs
Review URL: http://codereview.chromium.org/7483015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93566 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/nacl')
-rw-r--r-- | chrome/nacl/nacl_fork_delegate_linux.cc | 10 | ||||
-rw-r--r-- | chrome/nacl/nacl_helper_linux.cc | 8 |
2 files changed, 10 insertions, 8 deletions
diff --git a/chrome/nacl/nacl_fork_delegate_linux.cc b/chrome/nacl/nacl_fork_delegate_linux.cc index 9f08a18..794cfda 100644 --- a/chrome/nacl/nacl_fork_delegate_linux.cc +++ b/chrome/nacl/nacl_fork_delegate_linux.cc @@ -55,7 +55,7 @@ void NaClForkDelegate::Init(const bool sandboxed, ready_ = base::LaunchProcess(argv, options, NULL); // parent and error cases are handled below } - if (!HANDLE_EINTR(close(fds[1]))) + if (HANDLE_EINTR(close(fds[1])) != 0) LOG(ERROR) << "close(fds[1]) failed"; if (ready_) { const ssize_t kExpectedLength = strlen(kNaClHelperStartupAck); @@ -75,14 +75,16 @@ void NaClForkDelegate::Init(const bool sandboxed, // becomes the default. ready_ = false; fd_ = -1; - if (!HANDLE_EINTR(close(fds[0]))) + if (HANDLE_EINTR(close(fds[0])) != 0) LOG(ERROR) << "close(fds[0]) failed"; } NaClForkDelegate::~NaClForkDelegate() { // side effect of close: delegate process will terminate - if (!HANDLE_EINTR(close(fd_))) - LOG(ERROR) << "close(fd_) failed"; + if (ready_) { + if (HANDLE_EINTR(close(fd_)) != 0) + LOG(ERROR) << "close(fd_) failed"; + } } bool NaClForkDelegate::CanHelp(const std::string& process_type) { diff --git a/chrome/nacl/nacl_helper_linux.cc b/chrome/nacl/nacl_helper_linux.cc index 0bbd5d3..b943e2b 100644 --- a/chrome/nacl/nacl_helper_linux.cc +++ b/chrome/nacl/nacl_helper_linux.cc @@ -35,7 +35,7 @@ bool g_suid_sandbox_active; void BecomeNaClLoader(const std::vector<int>& child_fds) { VLOG(1) << "NaCl loader: setting up IPC descriptor"; // don't need zygote FD any more - if (!HANDLE_EINTR(close(kNaClZygoteDescriptor))) + if (HANDLE_EINTR(close(kNaClZygoteDescriptor)) != 0) LOG(ERROR) << "close(kNaClZygoteDescriptor) failed."; // Set up browser descriptor as expected by Chrome on fd 3 // The zygote takes care of putting the sandbox IPC channel on fd 5 @@ -86,9 +86,9 @@ void HandleForkRequest(const std::vector<int>& child_fds) { validack = true; } } - if (!HANDLE_EINTR(close(child_fds[kNaClDummyFDIndex]))) + if (HANDLE_EINTR(close(child_fds[kNaClDummyFDIndex])) != 0) LOG(ERROR) << "close(child_fds[kNaClDummyFDIndex]) failed"; - if (!HANDLE_EINTR(close(child_fds[kNaClParentFDIndex]))) + if (HANDLE_EINTR(close(child_fds[kNaClParentFDIndex])) != 0) LOG(ERROR) << "close(child_fds[kNaClParentFDIndex]) failed"; if (validack) { BecomeNaClLoader(child_fds); @@ -102,7 +102,7 @@ void HandleForkRequest(const std::vector<int>& child_fds) { // First, close the dummy_fd so the sandbox won't find me when // looking for the child's pid in /proc. Also close other fds. for (size_t i = 0; i < child_fds.size(); i++) { - if (!HANDLE_EINTR(close(child_fds[i]))) + if (HANDLE_EINTR(close(child_fds[i])) != 0) LOG(ERROR) << "close(child_fds[i]) failed"; } VLOG(1) << "nacl_helper: childpid is " << childpid; |