Index: content/zygote/zygote_linux.cc |
diff --git a/content/zygote/zygote_linux.cc b/content/zygote/zygote_linux.cc |
index cab47220876e206e41125985aec45effb007d10d..89fe021ac3bbadd3eed4defe52480911ce1ef6b4 100644 |
--- a/content/zygote/zygote_linux.cc |
+++ b/content/zygote/zygote_linux.cc |
@@ -436,9 +436,15 @@ int Zygote::ForkWithRealPid(const std::string& process_type, |
DLOG(ERROR) << "Failed to find kPrimaryIPCChannel in FD mapping"; |
return -1; |
} |
+ int mojo_channel_fd = LookUpFd(fd_mapping, kMojoIPCChannel); |
+ if (mojo_channel_fd < 0) { |
+ DLOG(ERROR) << "Failed to find kMojoIPCChannel in FD mapping"; |
+ return -1; |
+ } |
std::vector<int> fds; |
fds.push_back(ipc_channel_fd); // kBrowserFDIndex |
fds.push_back(pid_oracle.get()); // kPIDOracleFDIndex |
+ fds.push_back(mojo_channel_fd); // kMojoParentFDIndex |
pid = helper->Fork(process_type, fds, channel_id); |
// Helpers should never return in the child process. |