Index: chrome/nacl/nacl_helper_linux.cc |
diff --git a/chrome/nacl/nacl_helper_linux.cc b/chrome/nacl/nacl_helper_linux.cc |
index e823b5350b98e397aecb3e11e7be666e8077b710..a533c50f80910f4067934b93e00655208ce1b171 100644 |
--- a/chrome/nacl/nacl_helper_linux.cc |
+++ b/chrome/nacl/nacl_helper_linux.cc |
@@ -77,8 +77,9 @@ void ChildNaClLoaderInit(const std::vector<int>& child_fds, |
// should not fork any child processes (which the seccomp |
// sandbox does) until then, because that can interfere with the |
// parent's discovery of our PID. |
- const int nread = HANDLE_EINTR(read(child_fds[kNaClParentFDIndex], buffer, |
- kMaxReadSize)); |
+ const int nread = HANDLE_EINTR( |
+ read(child_fds[kNaClParentFDIndex(child_fds.size())], buffer, |
+ kMaxReadSize)); |
const std::string switch_prefix = std::string("--") + |
switches::kProcessChannelID + std::string("="); |
const size_t len = switch_prefix.length(); |
@@ -95,9 +96,9 @@ void ChildNaClLoaderInit(const std::vector<int>& child_fds, |
validack = true; |
} |
} |
- if (HANDLE_EINTR(close(child_fds[kNaClDummyFDIndex])) != 0) |
+ if (HANDLE_EINTR(close(child_fds[kNaClDummyFDIndex(child_fds.size())])) != 0) |
LOG(ERROR) << "close(child_fds[kNaClDummyFDIndex]) failed"; |
- if (HANDLE_EINTR(close(child_fds[kNaClParentFDIndex])) != 0) |
+ if (HANDLE_EINTR(close(child_fds[kNaClParentFDIndex(child_fds.size())])) != 0) |
LOG(ERROR) << "close(child_fds[kNaClParentFDIndex]) failed"; |
if (validack) { |
BecomeNaClLoader(child_fds, system_info); |
@@ -113,7 +114,7 @@ void ChildNaClLoaderInit(const std::vector<int>& child_fds, |
bool HandleForkRequest(const std::vector<int>& child_fds, |
const NaClLoaderSystemInfo& system_info, |
Pickle* output_pickle) { |
- if (kNaClParentFDIndex + 1 != child_fds.size()) { |
+ if (kNaClParentFDIndex(child_fds.size()) + 1 != child_fds.size()) { |
LOG(ERROR) << "nacl_helper: unexpected number of fds, got " |
<< child_fds.size(); |
return false; |