Browse Source

Warn if sizeof(tor_socket_t) != sizeof(SOCKET)

Nick Mathewson 13 years ago
parent
commit
dea0720dad
2 changed files with 8 additions and 0 deletions
  1. 3 0
      changes/tor_socket_tests
  2. 5 0
      src/common/compat.c

+ 3 - 0
changes/tor_socket_tests

@@ -2,6 +2,9 @@
     - Find more places in the code that should have been testing for
       invalid sockets using the SOCKET_OK macro. Required for a fix
       for bug 4533. Bugfix on 0.2.2.28-beta.
+    - Detect attempts to build Tor on (as yet hypothetical) versions
+      of Windows where sizeof(intptr_t) != sizeof(SOCKET).  Partial
+      fix for bug 4533. Bugfix on 0.2.2.28-beta.
 
   o Code simplification and refactoring:
     - Use a TOR_INVALID_SOCKET macro when initializing a socket to an

+ 5 - 0
src/common/compat.c

@@ -2889,6 +2889,11 @@ network_init(void)
     log_warn(LD_NET,"Error initializing windows network layer: code was %d",r);
     return -1;
   }
+  if (sizeof(SOCKET) != sizeof(tor_socket_t)) {
+    log_warn(LD_BUG,"The tor_socket_t type does not match SOCKET in size; Tor "
+             "might not work. (Sizes are %d and %d respectively.)",
+             (int)sizeof(tor_socket_t), (int)sizeof(SOCKET));
+  }
   /* WSAData.iMaxSockets might show the max sockets we're allowed to use.
    * We might use it to complain if we're trying to be a server but have
    * too few sockets available. */