Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b713b43 authored by Subash Abhinov Kasiviswanathan's avatar Subash Abhinov Kasiviswanathan
Browse files

tcp: Disable killing of time_wait sockets in tcp_nuke_addr



tcp_nuke_addr removes all sockets in TCP state CONNECTED
and TIME_WAIT by parsing a hash list of sockets.
When parsing through this list, accessing TIME_WAIT sockets
leads to a crash since the sk meta data is probably not valid.

Fix this by bypassing TIME_WAIT sockets in tcp_nuke_addr.

Change-Id: Iafe9fafd406f1afe97f02cc55095ceb5bd3b4722
Signed-off-by: default avatarSe Wang Oh <sewango@codeaurora.org>
Signed-off-by: default avatarSubash Abhinov Kasiviswanathan <subashab@codeaurora.org>
parent 861a4ae9
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -3199,6 +3199,9 @@ restart:
		sk_nulls_for_each(sk, node, &tcp_hashinfo.ehash[bucket].chain) {
			struct inet_sock *inet = inet_sk(sk);

			if (sk->sk_state == TCP_TIME_WAIT)
				continue;

			if (sysctl_ip_dynaddr && sk->sk_state == TCP_SYN_SENT)
				continue;
			if (sock_flag(sk, SOCK_DEAD))