diff --git a/Core/GameEngine/Source/GameNetwork/FirewallHelper.cpp b/Core/GameEngine/Source/GameNetwork/FirewallHelper.cpp index d94329011eb..fe20d30f190 100644 --- a/Core/GameEngine/Source/GameNetwork/FirewallHelper.cpp +++ b/Core/GameEngine/Source/GameNetwork/FirewallHelper.cpp @@ -1481,6 +1481,8 @@ Bool FirewallHelperClass::openSpareSocket(UnsignedShort port) { if (m_spareSockets[i].udp->Bind((UnsignedInt)0, port) != 0) { DEBUG_CRASH(("FirewallHelperClass::openSpareSocket - Failed to init spare socket")); + delete m_spareSockets[i].udp; + m_spareSockets[i].udp = nullptr; return FALSE; } diff --git a/Core/GameEngine/Source/GameNetwork/udp.cpp b/Core/GameEngine/Source/GameNetwork/udp.cpp index e5f30ccb795..e3ab907928b 100644 --- a/Core/GameEngine/Source/GameNetwork/udp.cpp +++ b/Core/GameEngine/Source/GameNetwork/udp.cpp @@ -174,6 +174,8 @@ Int UDP::Bind(UnsignedInt IP,UnsignedShort Port) { status=GetStatus(); //CERR("Bind failure (" << status << ") IP " << IP << " PORT " << Port ) + closesocket(fd); + fd=0; return(status); }