diff options
| author | Philip Kaufmann <[email protected]> | 2014-07-17 22:33:58 +0200 |
|---|---|---|
| committer | Philip Kaufmann <[email protected]> | 2014-07-17 22:49:23 +0200 |
| commit | c994d2e769239036626fe51c59daea4085fc3d54 (patch) | |
| tree | 8f4504a9bdaf39f9333cfe3f62e42b69a5b7b5b6 /src/net.cpp | |
| parent | Merge pull request #4504 (diff) | |
| download | discoin-c994d2e769239036626fe51c59daea4085fc3d54.tar.xz discoin-c994d2e769239036626fe51c59daea4085fc3d54.zip | |
prevent SOCKET leak in BindListenPort()
- the call to CloseSocket() is placed after the WSAGetLastError(), because
a CloseSocket() can trigger an error also, which we don't want for the
logging in this two cases
Diffstat (limited to 'src/net.cpp')
| -rw-r--r-- | src/net.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/net.cpp b/src/net.cpp index 441bde3e9..b55cd72e8 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -1678,6 +1678,7 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste else strError = strprintf(_("Unable to bind to %s on this computer (bind returned error %s)"), addrBind.ToString(), NetworkErrorString(nErr)); LogPrintf("%s\n", strError); + CloseSocket(hListenSocket); return false; } LogPrintf("Bound to %s\n", addrBind.ToString()); @@ -1687,6 +1688,7 @@ bool BindListenPort(const CService &addrBind, string& strError, bool fWhiteliste { strError = strprintf(_("Error: Listening for incoming connections failed (listen returned error %s)"), NetworkErrorString(WSAGetLastError())); LogPrintf("%s\n", strError); + CloseSocket(hListenSocket); return false; } |