[tor-commits] [tor/master] Make SIZEOF_SOCKADDR return socklen_t to avoid bad compares.

nickm at torproject.org nickm at torproject.org
Fri Nov 27 16:53:03 UTC 2015


commit f108be7c2556de20dc34c0a8ad52b19c363febbd
Author: Nick Mathewson <nickm at torproject.org>
Date:   Fri Nov 27 11:48:54 2015 -0500

    Make SIZEOF_SOCKADDR return socklen_t to avoid bad compares.
---
 src/common/compat.c |   16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/common/compat.c b/src/common/compat.c
index 9e76592..0b4e4a4 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -1487,10 +1487,18 @@ tor_socketpair(int family, int type, int protocol, tor_socket_t fd[2])
 
 #ifdef NEED_ERSATZ_SOCKETPAIR
 
-#define SIZEOF_SOCKADDR(domain) \
-  (domain == AF_INET ? sizeof(struct sockaddr_in) : \
-   (domain == AF_INET6 ? sizeof(struct sockaddr_in6) : \
-    ((size_t)0) /* unsupported, don't match any valid size */))
+static INLINE socklen_t
+SIZEOF_SOCKADDR(int domain)
+{
+  switch (domain) {
+    case AF_INET:
+      return sizeof(struct sockaddr_in);
+    case AF_INET6:
+      return sizeof(struct sockaddr_in6);
+    default:
+      return 0;
+  }
+}
 
 /**
  * Helper used to implement socketpair on systems that lack it, by





More information about the tor-commits mailing list