| Index: chrome/app/breakpad_linux.cc
|
| ===================================================================
|
| --- chrome/app/breakpad_linux.cc (revision 52555)
|
| +++ chrome/app/breakpad_linux.cc (working copy)
|
| @@ -679,12 +679,17 @@
|
| memcpy(crash_url, child_process_logging::active_url.data(), crash_url_len);
|
| memcpy(distro, base::linux_distro.data(), distro_len);
|
|
|
| + char b; // Dummy variable for sys_read below.
|
| + const char* b_addr = &b; // Get the address of |b| so we can create the
|
| + // expected /proc/[pid]/syscall content in the
|
| + // browser to convert namespace tids.
|
| +
|
| // The length of the control message:
|
| static const unsigned kControlMsgSize = CMSG_SPACE(sizeof(int));
|
|
|
| struct kernel_msghdr msg;
|
| my_memset(&msg, 0, sizeof(struct kernel_msghdr));
|
| - struct kernel_iovec iov[4];
|
| + struct kernel_iovec iov[6];
|
| iov[0].iov_base = const_cast<void*>(crash_context);
|
| iov[0].iov_len = crash_context_size;
|
| iov[1].iov_base = guid;
|
| @@ -693,9 +698,13 @@
|
| iov[2].iov_len = kMaxActiveURLSize + 1;
|
| iov[3].iov_base = distro;
|
| iov[3].iov_len = kDistroSize + 1;
|
| + iov[4].iov_base = &b_addr;
|
| + iov[4].iov_len = sizeof(b_addr);
|
| + iov[5].iov_base = &fds[0];
|
| + iov[5].iov_len = sizeof(fds[0]);
|
|
|
| msg.msg_iov = iov;
|
| - msg.msg_iovlen = 4;
|
| + msg.msg_iovlen = 6;
|
| char cmsg[kControlMsgSize];
|
| my_memset(cmsg, 0, kControlMsgSize);
|
| msg.msg_control = cmsg;
|
| @@ -710,7 +719,6 @@
|
| HANDLE_EINTR(sys_sendmsg(fd, &msg, 0));
|
| sys_close(fds[1]);
|
|
|
| - char b;
|
| HANDLE_EINTR(sys_read(fds[0], &b, 1));
|
|
|
| return true;
|
|
|