diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-27 15:21:23 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-02-27 15:21:23 +0000 |
commit | 5fb1faf2bfc87597dbbf1a6686bab6b36482529d (patch) | |
tree | 05ecf4363780e14bd42b26d179cc1bd37ffbf46b /ext/socket/raddrinfo.c | |
parent | d8c66c433393cb0ff97fcbd32f6a4fdc4d8f8b79 (diff) | |
download | ruby-5fb1faf2bfc87597dbbf1a6686bab6b36482529d.tar.gz |
* 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
Diffstat (limited to 'ext/socket/raddrinfo.c')
-rw-r--r-- | ext/socket/raddrinfo.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index eead911705..ff3926405a 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -1255,15 +1255,16 @@ addrinfo_mload(VALUE self, VALUE ary) #ifdef HAVE_SYS_UN_H case AF_UNIX: { - struct sockaddr_un *su = (struct sockaddr_un *)&ss; - memset(su, 0, sizeof(*su)); - su->sun_family = AF_UNIX; + struct sockaddr_un sun; + memset(&sun, 0, sizeof(sun)); + sun.sun_family = AF_UNIX; StringValue(v); - if (sizeof(su->sun_path) <= RSTRING_LEN(v)) + if (sizeof(sun.sun_path) <= RSTRING_LEN(v)) rb_raise(rb_eSocket, "too long AF_UNIX path"); - memcpy(su->sun_path, RSTRING_PTR(v), RSTRING_LEN(v)); - len = sizeof(*su); + memcpy(sun.sun_path, RSTRING_PTR(v), RSTRING_LEN(v)); + len = sizeof(sun); + memcpy(&ss, &sun, len); break; } #endif |