summaryrefslogtreecommitdiffstats
path: root/chrome/nacl
diff options
context:
space:
mode:
authorbradchen@google.com <bradchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-22 06:57:52 +0000
committerbradchen@google.com <bradchen@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-22 06:57:52 +0000
commit3486a1e065cf1288c2b206e1c99c2ce461584644 (patch)
treea2f74f7cde1dbcda04ac0bea82fa5966e38413bd /chrome/nacl
parentae03a139cdf9094c0162b33a76df414ac2d68502 (diff)
downloadchromium_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.cc10
-rw-r--r--chrome/nacl/nacl_helper_linux.cc8
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;