Skip to content
Permalink
Browse files
Merge pull request #11083 from sepalani/bba-check
BBA/BuiltIn: Fix a crash during network stack exhaustion
  • Loading branch information
AdmiralCurtiss committed Sep 24, 2022
2 parents 6397555 + 34858e9 commit f106bc1
Showing 1 changed file with 8 additions and 1 deletion.
@@ -510,7 +510,7 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleUDPFrame(const Common::UDPPacket&
void CEXIETHERNET::BuiltInBBAInterface::HandleUPnPClient()
{
StackRef* ref = GetAvailableSlot(0);
if (m_upnp_httpd.accept(ref->tcp_socket) != sf::Socket::Done)
if (ref == nullptr || m_upnp_httpd.accept(ref->tcp_socket) != sf::Socket::Done)
return;

if (ref->tcp_socket.GetPeerName(&ref->from) != sf::Socket::Status::Done ||
@@ -520,6 +520,13 @@ void CEXIETHERNET::BuiltInBBAInterface::HandleUPnPClient()
return;
}

if (m_current_ip == ref->from.sin_addr.s_addr)
{
ref->tcp_socket.disconnect();
WARN_LOG_FMT(SP1, "Ignoring UPnP request to itself");
return;
}

ref->delay = GetTickCountStd();
ref->ip = ref->from.sin_addr.s_addr;
ref->local = ref->to.sin_port;

0 comments on commit f106bc1

Please sign in to comment.