Index: ipc/ipc_channel_posix.h |
diff --git a/ipc/ipc_channel_posix.h b/ipc/ipc_channel_posix.h |
index 4edb6a05fa592c098c3fdc3566622765de1e9a0b..986eb8ae41a32faf3c0f4be040833087c34a718f 100644 |
--- a/ipc/ipc_channel_posix.h |
+++ b/ipc/ipc_channel_posix.h |
@@ -139,18 +139,14 @@ class IPC_EXPORT ChannelPosix : public Channel, |
MessageAttachmentSet::kMaxDescriptorsPerMessage; |
// Buffer size for file descriptors used for recvmsg. On Mac the CMSG macros |
- // don't seem to be constant so we have to pick a "large enough" value. |
+ // are not constant so we have to pick a "large enough" padding for headers. |
#if defined(OS_MACOSX) |
- static const size_t kMaxReadFDBuffer = 1024; |
+ static const size_t kMaxReadFDBuffer = 1024 + sizeof(int) * kMaxReadFDs; |
#else |
static const size_t kMaxReadFDBuffer = CMSG_SPACE(sizeof(int) * kMaxReadFDs); |
#endif |
- |
- // Temporary buffer used to receive the file descriptors from recvmsg. |
- // Code that writes into this should immediately read them out and save |
- // them to input_fds_, since this buffer will be re-used anytime we call |
- // recvmsg. |
- char input_cmsg_buf_[kMaxReadFDBuffer]; |
+ static_assert(kMaxReadFDBuffer <= 8192, |
+ "kMaxReadFDBuffer too big for a stack buffer"); |
// File descriptors extracted from messages coming off of the channel. The |
// handles may span messages and come off different channels from the message |