If a syn-cookies request socket don't pass MPTCP-level
validation done in syn_recv_sock(), we need to release
it immediately, or it will be leaked.

Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/89
Fixes: 9466a1ccebbe ("mptcp: enable JOIN requests even if cookies are in use")
Reported-and-tested-by: Geliang Tang <geliangt...@gmail.com>
Reviewed-by: Matthieu Baerts <matthieu.bae...@tessares.net>
Signed-off-by: Paolo Abeni <pab...@redhat.com>
---
 net/ipv4/syncookies.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
index f0794f0232ba..e03756631541 100644
--- a/net/ipv4/syncookies.c
+++ b/net/ipv4/syncookies.c
@@ -214,7 +214,7 @@ struct sock *tcp_get_cookie_sock(struct sock *sk, struct 
sk_buff *skb,
                sock_rps_save_rxhash(child, skb);
 
                if (rsk_drop_req(req)) {
-                       refcount_set(&req->rsk_refcnt, 2);
+                       reqsk_put(req);
                        return child;
                }
 
-- 
2.26.2

Reply via email to