Patch "mptcp: remove redundant req destruct in subflow_check_req()" has been added to the 5.13-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    mptcp: remove redundant req destruct in subflow_check_req()

to the 5.13-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     mptcp-remove-redundant-req-destruct-in-subflow_check.patch
and it can be found in the queue-5.13 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3e03e81c2dfd3661089f67a0a981b09e8a628982
Author: Jianguo Wu <wujianguo@xxxxxxxxxxxxxxx>
Date:   Fri Jul 9 17:20:47 2021 -0700

    mptcp: remove redundant req destruct in subflow_check_req()
    
    [ Upstream commit 030d37bd1cd2443a1f21db47eb301899bfa45a2a ]
    
    In subflow_check_req(), if subflow sport is mismatch, will put msk,
    destroy token, and destruct req, then return -EPERM, which can be
    done by subflow_req_destructor() via:
    
      tcp_conn_request()
        |--__reqsk_free()
          |--subflow_req_destructor()
    
    So we should remove these redundant code, otherwise will call
    tcp_v4_reqsk_destructor() twice, and may double free
    inet_rsk(req)->ireq_opt.
    
    Fixes: 5bc56388c74f ("mptcp: add port number check for MP_JOIN")
    Signed-off-by: Jianguo Wu <wujianguo@xxxxxxxxxxxxxxx>
    Signed-off-by: Mat Martineau <mathew.j.martineau@xxxxxxxxxxxxxxx>
    Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c
index cbc452d0901e..5493c851ca6c 100644
--- a/net/mptcp/subflow.c
+++ b/net/mptcp/subflow.c
@@ -212,11 +212,6 @@ again:
 				 ntohs(inet_sk(sk_listener)->inet_sport),
 				 ntohs(inet_sk((struct sock *)subflow_req->msk)->inet_sport));
 			if (!mptcp_pm_sport_in_anno_list(subflow_req->msk, sk_listener)) {
-				sock_put((struct sock *)subflow_req->msk);
-				mptcp_token_destroy_request(req);
-				tcp_request_sock_ops.destructor(req);
-				subflow_req->msk = NULL;
-				subflow_req->mp_join = 0;
 				SUBFLOW_REQ_INC_STATS(req, MPTCP_MIB_MISMATCHPORTSYNRX);
 				return -EPERM;
 			}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux