Author: jmg
Date: Tue Jan  7 23:01:05 2014
New Revision: 260418
URL: http://svnweb.freebsd.org/changeset/base/260418

Log:
  make sure that rbuf is aligned by making a union w/ the structure we
  need to access...  access the struct through the union too...
  
  PR:           185165
  Submitted by: Guy Yur
  MFC after:    1 week

Modified:
  head/lib/libnetgraph/sock.c

Modified: head/lib/libnetgraph/sock.c
==============================================================================
--- head/lib/libnetgraph/sock.c Tue Jan  7 23:00:58 2014        (r260417)
+++ head/lib/libnetgraph/sock.c Tue Jan  7 23:01:05 2014        (r260418)
@@ -111,9 +111,12 @@ gotNode:
                /* Save node name */
                strlcpy(namebuf, name, sizeof(namebuf));
        } else if (dsp != NULL) {
-               u_char rbuf[sizeof(struct ng_mesg) + sizeof(struct nodeinfo)];
-               struct ng_mesg *const resp = (struct ng_mesg *) rbuf;
-               struct nodeinfo *const ni = (struct nodeinfo *) resp->data;
+               union {
+                       u_char rbuf[sizeof(struct ng_mesg) +
+                           sizeof(struct nodeinfo)];
+                       struct ng_mesg res;
+               } res;
+               struct nodeinfo *const ni = (struct nodeinfo *) res.res.data;
 
                /* Find out the node ID */
                if (NgSendMsg(cs, ".", NGM_GENERIC_COOKIE,
@@ -123,7 +126,7 @@ gotNode:
                                NGLOG("send nodeinfo");
                        goto errout;
                }
-               if (NgRecvMsg(cs, resp, sizeof(rbuf), NULL) < 0) {
+               if (NgRecvMsg(cs, &res.res, sizeof(res.rbuf), NULL) < 0) {
                        errnosv = errno;
                        if (_gNgDebugLevel >= 1)
                                NGLOG("recv nodeinfo");
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to