From: JINMEI Tatuya Date: Wed, 21 Dec 2011 22:16:58 +0000 (-0800) Subject: [1452] made the code more strict-aliasing safe X-Git-Tag: perftcpdns_before_epoll~5^2~6^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3dfa82c4bae8bac305a4781eadc80ecfa6608534;p=thirdparty%2Fkea.git [1452] made the code more strict-aliasing safe --- diff --git a/src/lib/util/io/fd_share.cc b/src/lib/util/io/fd_share.cc index 563d249e86..b330b00bb7 100644 --- a/src/lib/util/io/fd_share.cc +++ b/src/lib/util/io/fd_share.cc @@ -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);