]> git.ipfire.org Git - thirdparty/tor.git/commitdiff
Make SIZEOF_SOCKADDR return socklen_t to avoid bad compares.
authorNick Mathewson <nickm@torproject.org>
Fri, 27 Nov 2015 16:48:54 +0000 (11:48 -0500)
committerNick Mathewson <nickm@torproject.org>
Fri, 27 Nov 2015 16:48:54 +0000 (11:48 -0500)
src/common/compat.c

index 9e765926154c0a52652b43f5f1be2845e77dae08..0b4e4a428d3eafc20879e229c947fe01a1805295 100644 (file)
@@ -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