Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/tmux/dist/compat Hacks for CMSG_SPACE() not bei...



details:   https://anonhg.NetBSD.org/src/rev/0cdbdf8fd721
branches:  trunk
changeset: 765563:0cdbdf8fd721
user:      joerg <joerg%NetBSD.org@localhost>
date:      Mon May 30 16:20:58 2011 +0000

description:
Hacks for CMSG_SPACE() not being an ICE

diffstat:

 external/bsd/tmux/dist/compat/imsg-buffer.c |  8 ++++++--
 external/bsd/tmux/dist/compat/imsg.c        |  8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diffs (60 lines):

diff -r 27509a55c3a3 -r 0cdbdf8fd721 external/bsd/tmux/dist/compat/imsg-buffer.c
--- a/external/bsd/tmux/dist/compat/imsg-buffer.c       Mon May 30 16:03:02 2011 +0000
+++ b/external/bsd/tmux/dist/compat/imsg-buffer.c       Mon May 30 16:20:58 2011 +0000
@@ -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;
diff -r 27509a55c3a3 -r 0cdbdf8fd721 external/bsd/tmux/dist/compat/imsg.c
--- a/external/bsd/tmux/dist/compat/imsg.c      Mon May 30 16:03:02 2011 +0000
+++ b/external/bsd/tmux/dist/compat/imsg.c      Mon May 30 16:20:58 2011 +0000
@@ -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) {



Home | Main Index | Thread Index | Old Index