Date: Sat, 29 Jun 2013 19:59:38 GMT From: dpl@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r253695 - soc2013/dpl/head/contrib/bzip2 Message-ID: <201306291959.r5TJxctg015344@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: dpl Date: Sat Jun 29 19:59:38 2013 New Revision: 253695 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=253695 Log: Resolved a silly bug with pointers. Modified: soc2013/dpl/head/contrib/bzip2/bzip2.c Modified: soc2013/dpl/head/contrib/bzip2/bzip2.c ============================================================================== --- soc2013/dpl/head/contrib/bzip2/bzip2.c Sat Jun 29 18:07:32 2013 (r253694) +++ soc2013/dpl/head/contrib/bzip2/bzip2.c Sat Jun 29 19:59:38 2013 (r253695) @@ -234,7 +234,7 @@ printf("sendfd on socket:%d fd:%d\n",s,fd); struct msghdr msg; - struct cmsghdr *cmsg; + struct cmsghdr cmsg; char buf = { "!" }; struct iovec io[1]; @@ -245,15 +245,15 @@ msg.msg_namelen = 0; msg.msg_iov = io; msg.msg_iovlen = 1; - msg.msg_control = cmsg; + msg.msg_control = &cmsg; msg.msg_controllen = CMSG_LEN(sizeof(int)); printf("About to set CMSG\n"); - cmsg->cmsg_len = msg.msg_controllen; - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_RIGHTS; + cmsg.cmsg_len = msg.msg_controllen; + cmsg.cmsg_level = SOL_SOCKET; + cmsg.cmsg_type = SCM_RIGHTS; printf("About to set CMSG_DATA as fd\n"); - *(int *)CMSG_DATA(cmsg) = fd; + *(int *)CMSG_DATA(&cmsg) = fd; printf("CMSG_DATA = fd\n"); if(sendmsg(s, &msg, 0) < 0) return -1; @@ -266,7 +266,7 @@ int fd; struct msghdr msg; - struct cmsghdr *cmsg; + struct cmsghdr cmsg; char buf = { "!" }; struct iovec io[1]; @@ -277,16 +277,16 @@ msg.msg_namelen = 0; msg.msg_iov = io; msg.msg_iovlen = 1; - msg.msg_control = cmsg; + msg.msg_control = &cmsg; msg.msg_controllen = CMSG_LEN(sizeof(int)); - cmsg->cmsg_len = msg.msg_controllen; - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_RIGHTS; - /*Why does sendmsg set errno to 9 EBADF.*/ + cmsg.cmsg_len = msg.msg_controllen; + cmsg.cmsg_level = SOL_SOCKET; + cmsg.cmsg_type = SCM_RIGHTS; + /*Why does sendmsg set errno to 9 EBADF??*/ if(recvmsg(s, &msg, 0) < 0) return -1; - fd = *(int *)CMSG_DATA(cmsg); + fd = *(int *)CMSG_DATA(&cmsg); printf("recvfd() fd recieved: %d", fd); return 0; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201306291959.r5TJxctg015344>