mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 08:33:17 +02:00
tcp: Fix imbalanced icsk_accept_queue count.
When TCP socket migration happens in reqsk_timer_handler(),
@sk_listener will be updated with the new listener.
When we call __inet_csk_reqsk_queue_drop(), the listener must
be the one stored in req->rsk_listener.
The cited commit accidentally replaced oreq->rsk_listener with
sk_listener, leading to imbalanced icsk_accept_queue count.
Let's pass the correct listener to __inet_csk_reqsk_queue_drop().
Fixes: e8c526f2bd ("tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().")
Reported-by: Damiano Melotti <melotti@google.com>
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260506035954.1563147-3-kuniyu@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
97c8a3c1f7
commit
7eca3292ca
|
|
@ -1134,7 +1134,7 @@ static void reqsk_timer_handler(struct timer_list *t)
|
|||
}
|
||||
|
||||
drop:
|
||||
__inet_csk_reqsk_queue_drop(sk_listener, oreq, true);
|
||||
__inet_csk_reqsk_queue_drop(oreq->rsk_listener, oreq, true);
|
||||
reqsk_put(oreq);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user