diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-26 14:34:20 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2013-03-26 14:34:20 +0000 |
commit | 7371736e49bcb7066651139654f91f0e0cb9ec5a (patch) | |
tree | 83f47efef01ca1fa7faf3641ecc3e489a950c521 | |
parent | b0b460925cf990ebd368f19816877657ca38f630 (diff) | |
download | ruby-7371736e49bcb7066651139654f91f0e0cb9ec5a.tar.gz |
* ext/socket/socket.c (sockaddr_len): return the shortest length for
unknown socket address.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39941 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ext/socket/socket.c | 2 |
2 files changed, 6 insertions, 1 deletions
@@ -1,3 +1,8 @@ +Tue Mar 26 22:31:10 2013 Tanaka Akira <akr@fsij.org> + + * ext/socket/socket.c (sockaddr_len): return the shortest length for + unknown socket address. + Tue Mar 26 22:14:46 2013 Tanaka Akira <akr@fsij.org> * thread.c (double2timeval): convert the infinity to TIME_MAX to avoid diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 1ddaea9594..32548944b2 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -1512,7 +1512,7 @@ sockaddr_len(struct sockaddr *addr) #endif default: - return (socklen_t)sizeof(struct sockaddr_in); + return (socklen_t)(offsetof(struct sockaddr, sa_family) + sizeof(addr->sa_family)); } } |