Bugfix: do not create CAddress for invalid accepts
authorPieter Wuille <pieter.wuille@gmail.com>
Wed, 15 Feb 2012 19:56:29 +0000 (20:56 +0100)
committerLuke Dashjr <luke-jr+git@utopios.org>
Fri, 17 Feb 2012 14:00:48 +0000 (09:00 -0500)
src/net.cpp

index 83e7f28..423b754 100644 (file)
@@ -885,13 +885,17 @@ void ThreadSocketHandler2(void* parg)
             struct sockaddr_in sockaddr;
             socklen_t len = sizeof(sockaddr);
             SOCKET hSocket = accept(hListenSocket, (struct sockaddr*)&sockaddr, &len);
-            CAddress addr(sockaddr);
+            CAddress addr;
             int nInbound = 0;
 
+            if (hSocket != INVALID_SOCKET)
+                addr = CAddress(sockaddr);
+
             CRITICAL_BLOCK(cs_vNodes)
                 BOOST_FOREACH(CNode* pnode, vNodes)
                 if (pnode->fInbound)
                     nInbound++;
+
             if (hSocket == INVALID_SOCKET)
             {
                 if (WSAGetLastError() != WSAEWOULDBLOCK)