Module Name: src
Committed By: joerg
Date: Mon May 30 16:20:58 UTC 2011
Modified Files:
src/external/bsd/tmux/dist/compat: imsg-buffer.c imsg.c
Log Message:
Hacks for CMSG_SPACE() not being an ICE
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1 -r1.2 src/external/bsd/tmux/dist/compat/imsg-buffer.c \
src/external/bsd/tmux/dist/compat/imsg.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/bsd/tmux/dist/compat/imsg-buffer.c
diff -u src/external/bsd/tmux/dist/compat/imsg-buffer.c:1.1.1.1 src/external/bsd/tmux/dist/compat/imsg-buffer.c:1.2
--- src/external/bsd/tmux/dist/compat/imsg-buffer.c:1.1.1.1 Thu Mar 10 09:15:41 2011
+++ src/external/bsd/tmux/dist/compat/imsg-buffer.c Mon May 30 16:20:58 2011
@@ -1,4 +1,4 @@
-/* $Id: imsg-buffer.c,v 1.1.1.1 2011/03/10 09:15:41 jmmv Exp $ */
+/* $Id: imsg-buffer.c,v 1.2 2011/05/30 16:20:58 joerg Exp $ */
/* $OpenBSD: imsg-buffer.c,v 1.3 2010/05/26 13:56:07 nicm Exp $ */
/*
@@ -228,7 +228,11 @@
struct cmsghdr *cmsg;
union {
struct cmsghdr hdr;
+#ifdef __clang__
+ char buf[128];
+#else
char buf[CMSG_SPACE(sizeof(int))];
+#endif
} cmsgbuf;
bzero(&iov, sizeof(iov));
@@ -248,7 +252,7 @@
if (buf != NULL && buf->fd != -1) {
msg.msg_control = (caddr_t)&cmsgbuf.buf;
- msg.msg_controllen = sizeof(cmsgbuf.buf);
+ msg.msg_controllen = CMSG_SPACE(sizeof(int));
cmsg = CMSG_FIRSTHDR(&msg);
cmsg->cmsg_len = CMSG_LEN(sizeof(int));
cmsg->cmsg_level = SOL_SOCKET;
Index: src/external/bsd/tmux/dist/compat/imsg.c
diff -u src/external/bsd/tmux/dist/compat/imsg.c:1.1.1.1 src/external/bsd/tmux/dist/compat/imsg.c:1.2
--- src/external/bsd/tmux/dist/compat/imsg.c:1.1.1.1 Thu Mar 10 09:15:41 2011
+++ src/external/bsd/tmux/dist/compat/imsg.c Mon May 30 16:20:58 2011
@@ -1,4 +1,4 @@
-/* $Id: imsg.c,v 1.1.1.1 2011/03/10 09:15:41 jmmv Exp $ */
+/* $Id: imsg.c,v 1.2 2011/05/30 16:20:58 joerg Exp $ */
/* $OpenBSD: imsg.c,v 1.3 2010/05/26 13:56:07 nicm Exp $ */
/*
@@ -48,7 +48,11 @@
struct cmsghdr *cmsg;
union {
struct cmsghdr hdr;
+#ifdef __clang__
+ char buf[128];
+#else
char buf[CMSG_SPACE(sizeof(int) * 16)];
+#endif
} cmsgbuf;
struct iovec iov;
ssize_t n;
@@ -62,7 +66,7 @@
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
msg.msg_control = &cmsgbuf.buf;
- msg.msg_controllen = sizeof(cmsgbuf.buf);
+ msg.msg_controllen = CMSG_SPACE(sizeof(int) * 16);
if ((n = recvmsg(ibuf->fd, &msg, 0)) == -1) {
if (errno != EINTR && errno != EAGAIN) {