socsvn commit: r253695 - soc2013/dpl/head/contrib/bzip2

dpl at FreeBSD.org dpl at FreeBSD.org
Sat Jun 29 19:59:38 UTC 2013


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;
 }


More information about the svn-soc-all mailing list