From 5fb1faf2bfc87597dbbf1a6686bab6b36482529d Mon Sep 17 00:00:00 2001 From: akr Date: Fri, 27 Feb 2009 15:21:23 +0000 Subject: * ext/socket/raddrinfo.c: suppress strict-aliasing warning with gcc version 4.4.0 20090219 (Red Hat 4.4.0-0.21) on Fedora 11 Alpha. * ext/socket/socket.c: ditto. * ext/socket/unixsocket.c: ditto. * ext/socket/sockport.h (SS_LEN): defined. (SET_SS_LEN): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22668 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/unixsocket.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'ext/socket/unixsocket.c') diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c index 5f8b86099d..ae596d6f65 100644 --- a/ext/socket/unixsocket.c +++ b/ext/socket/unixsocket.c @@ -236,7 +236,7 @@ unix_send_io(VALUE sock, VALUE val) cmsg.hdr.cmsg_len = CMSG_LEN(sizeof(int)); cmsg.hdr.cmsg_level = SOL_SOCKET; cmsg.hdr.cmsg_type = SCM_RIGHTS; - *(int *)CMSG_DATA(&cmsg.hdr) = fd; + memcpy(CMSG_DATA(&cmsg.hdr), &fd, sizeof(int)); #else arg.msg.msg_accrights = (caddr_t)&fd; arg.msg.msg_accrightslen = sizeof(fd); @@ -321,7 +321,8 @@ unix_recv_io(int argc, VALUE *argv, VALUE sock) cmsg.hdr.cmsg_len = CMSG_LEN(sizeof(int)); cmsg.hdr.cmsg_level = SOL_SOCKET; cmsg.hdr.cmsg_type = SCM_RIGHTS; - *(int *)CMSG_DATA(&cmsg.hdr) = -1; + fd = -1; + memcpy(CMSG_DATA(&cmsg.hdr), &fd, sizeof(int)); #else arg.msg.msg_accrights = (caddr_t)&fd; arg.msg.msg_accrightslen = sizeof(fd); @@ -374,7 +375,7 @@ unix_recv_io(int argc, VALUE *argv, VALUE sock) #endif #if FD_PASSING_BY_MSG_CONTROL - fd = *(int *)CMSG_DATA(&cmsg.hdr); + memcpy(&fd, CMSG_DATA(&cmsg.hdr), sizeof(int)); #endif if (klass == Qnil) -- cgit v1.2.3