]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1452] made the code more strict-aliasing safe
authorJINMEI Tatuya <jinmei@isc.org>
Wed, 21 Dec 2011 22:16:58 +0000 (14:16 -0800)
committerJINMEI Tatuya <jinmei@isc.org>
Wed, 21 Dec 2011 22:16:58 +0000 (14:16 -0800)
src/lib/util/io/fd_share.cc

index 563d249e8669d88b4688bde559727535f9c085d5..b330b00bb7daa20b596318bae41ffbdf88c0bbf0 100644 (file)
@@ -103,7 +103,7 @@ recv_fd(const int sock) {
     int fd = FD_OTHER_ERROR;
     if (cmsg != NULL && cmsg->cmsg_len == cmsg_len(sizeof(int)) &&
         cmsg->cmsg_level == SOL_SOCKET && cmsg->cmsg_type == SCM_RIGHTS) {
-        fd = *(const int*)CMSG_DATA(cmsg);
+        memcpy(&fd, CMSG_DATA(cmsg), sizeof(int));
     }
     free(msghdr.msg_control);
     return (fd);
@@ -132,7 +132,7 @@ send_fd(const int sock, const int fd) {
     cmsg->cmsg_len = cmsg_len(sizeof(int));
     cmsg->cmsg_level = SOL_SOCKET;
     cmsg->cmsg_type = SCM_RIGHTS;
-    *(int*)CMSG_DATA(cmsg) = fd;
+    memcpy(CMSG_DATA(cmsg), &fd, sizeof(int));
 
     const int ret = sendmsg(sock, &msghdr, 0);
     free(msghdr.msg_control);