From c17f9adb1203501ae22f51188d02ed98b53128b7 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Wed, 18 Aug 2021 09:56:07 +0200 Subject: [PATCH] Kernel: Don't respond to TCP RST packets As seen with GitHub Pages and probably lots of other hosts this might cause a loop if the peer decides to respond to our RST packet again. --- Kernel/Net/NetworkTask.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Kernel/Net/NetworkTask.cpp b/Kernel/Net/NetworkTask.cpp index 0a8933a902..bb81867313 100644 --- a/Kernel/Net/NetworkTask.cpp +++ b/Kernel/Net/NetworkTask.cpp @@ -410,7 +410,7 @@ void handle_tcp(IPv4Packet const& ipv4_packet, Time const& packet_timestamp) dbgln_if(TCP_DEBUG, "handle_tcp: looking for socket; tuple={}", tuple.to_string()); auto socket = TCPSocket::from_tuple(tuple); - if (!socket) { + if (!socket && !tcp_packet.has_rst()) { dbgln("handle_tcp: No TCP socket for tuple {}. Sending RST.", tuple.to_string()); send_tcp_rst(ipv4_packet, tcp_packet, adapter); return;