aboutsummaryrefslogtreecommitdiffstats
path: root/ext/socket/sockport.h
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-14 15:17:49 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-02-14 15:17:49 +0000
commit792cfa3fd0251f3b9fd8993a16b5948bd852e6da (patch)
tree3887edc4cae285aee5051e0055319215606a1063 /ext/socket/sockport.h
parent93c819aa716c96f4963155af7ca9bc02e93f087f (diff)
downloadruby-792cfa3fd0251f3b9fd8993a16b5948bd852e6da.tar.gz
* ext/socket/sockport.h (VALIDATE_SOCKLEN): new macro to validate
sa_len member of 4.4BSD socket address. * ext/socket/getnameinfo.c (getnameinfo): use VALIDATE_SOCKLEN, instead of SA_LEN. * ext/socket/socket.c (sock_s_getnameinfo): use VALIDATE_SOCKLEN instead of SS_LEN. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket/sockport.h')
-rw-r--r--ext/socket/sockport.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/socket/sockport.h b/ext/socket/sockport.h
index 5ab087d97b..43784fca61 100644
--- a/ext/socket/sockport.h
+++ b/ext/socket/sockport.h
@@ -10,6 +10,12 @@
#ifndef SOCKPORT_H
#define SOCKPORT_H
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+# define VALIDATE_SOCKLEN(addr, len) ((addr)->sa_len == (len))
+#else
+# define VALIDATE_SOCKLEN(addr, len) ((void)(addr), (void)(len), 1)
+#endif
+
#ifdef SA_LEN
# define SS_LEN(ss) (ss)->ss_len
#else