mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 15:43:59 +08:00
mptcp: put subflow sock on connect error
mptcp_add_pending_subflow() performs a sock_hold() on the subflow,
then adds the subflow to the join list.
Without a sock_put the subflow sk won't be freed in case connect() fails.
unreferenced object 0xffff88810c03b100 (size 3000):
[..]
sk_prot_alloc.isra.0+0x2f/0x110
sk_alloc+0x5d/0xc20
inet6_create+0x2b7/0xd30
__sock_create+0x17f/0x410
mptcp_subflow_create_socket+0xff/0x9c0
__mptcp_subflow_connect+0x1da/0xaf0
mptcp_pm_nl_work+0x6e0/0x1120
mptcp_worker+0x508/0x9a0
Fixes: 5b950ff433
("mptcp: link MPC subflow into msk only after accept")
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Mat Martineau <mathew.j.martineau@linux.intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e0be4931f3
commit
f07157792c
@ -1297,6 +1297,7 @@ failed_unlink:
|
||||
spin_lock_bh(&msk->join_list_lock);
|
||||
list_del(&subflow->node);
|
||||
spin_unlock_bh(&msk->join_list_lock);
|
||||
sock_put(mptcp_subflow_tcp_sock(subflow));
|
||||
|
||||
failed:
|
||||
subflow->disposable = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user