mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-21 23:57:36 -04:00
tcp: fix TIME_WAIT socket reference leak on PSP policy failure
Release the TIME_WAIT socket reference and jump to discard_it
upon PSP policy failure in both IPv4 and IPv6 receive paths.
This prevents a memory leak of tcp_tw_bucket structures.
Fixes: 659a2899a5 ("tcp: add datapath logic for PSP with inline key exchange")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Reviewed-by: Daniel Zahka <daniel.zahka@gmail.com>
Link: https://patch.msgid.link/20260710181317.4060230-1-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
df6134b527
commit
2c1931a811
@@ -2318,8 +2318,10 @@ int tcp_v4_rcv(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
drop_reason = psp_twsk_rx_policy_check(inet_twsk(sk), skb);
|
||||
if (drop_reason)
|
||||
break;
|
||||
if (drop_reason) {
|
||||
inet_twsk_put(inet_twsk(sk));
|
||||
goto discard_it;
|
||||
}
|
||||
}
|
||||
/* to ACK */
|
||||
fallthrough;
|
||||
|
||||
@@ -1977,8 +1977,10 @@ INDIRECT_CALLABLE_SCOPE int tcp_v6_rcv(struct sk_buff *skb)
|
||||
}
|
||||
|
||||
drop_reason = psp_twsk_rx_policy_check(inet_twsk(sk), skb);
|
||||
if (drop_reason)
|
||||
break;
|
||||
if (drop_reason) {
|
||||
inet_twsk_put(inet_twsk(sk));
|
||||
goto discard_it;
|
||||
}
|
||||
}
|
||||
/* to ACK */
|
||||
fallthrough;
|
||||
|
||||
Reference in New Issue
Block a user