Commit fe451fe9 authored by Gregory Maxwell's avatar Gregory Maxwell
Browse files

Merge pull request #4037 from gmaxwell/fdleaks

Prevent socket leak in ThreadSocketHandler.
parents 2f3308f2 0bd05b53
Showing with 8 additions and 7 deletions
+8 -7
......@@ -946,11 +946,7 @@ void ThreadSocketHandler()
}
else if (nInbound >= nMaxConnections - MAX_OUTBOUND_CONNECTIONS)
{
{
LOCK(cs_setservAddNodeAddresses);
if (!setservAddNodeAddresses.count(addr))
closesocket(hSocket);
}
closesocket(hSocket);
}
else if (CNode::IsBanned(addr))
{
......
......@@ -293,8 +293,10 @@ bool static Socks5(string strDest, int port, SOCKET& hSocket)
case 0x03:
{
ret = recv(hSocket, pchRet3, 1, 0) != 1;
if (ret)
if (ret) {
closesocket(hSocket);
return error("Error reading from proxy");
}
int nRecv = pchRet3[0];
ret = recv(hSocket, pchRet3, nRecv, 0) != nRecv;
break;
......@@ -501,6 +503,7 @@ bool ConnectSocket(const CService &addrDest, SOCKET& hSocketRet, int nTimeout)
return false;
break;
default:
closesocket(hSocket);
return false;
}
......@@ -532,7 +535,9 @@ bool ConnectSocketByName(CService &addr, SOCKET& hSocketRet, const char *pszDest
switch(nameproxy.second) {
default:
case 4: return false;
case 4:
closesocket(hSocket);
return false;
case 5:
if (!Socks5(strDest, port, hSocket))
return false;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment