mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04:00
mptcp: pm: re-using ID of unused removed ADD_ADDR
commit e255683c06df572ead96db5efb5d21be30c0efaa upstream.
If no subflow is attached to the 'signal' endpoint that is being
removed, the addr ID will not be marked as available again.
Mark the linked ID as available when removing the address entry from the
list to cover this case.
Fixes: b6c0838086
("mptcp: remove addr and subflow in PM netlink")
Cc: stable@vger.kernel.org
Reviewed-by: Mat Martineau <martineau@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20240819-net-mptcp-pm-reusing-id-v1-1-38035d40de5b@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
cc29c5546c
commit
cb24bdcdec
1 changed files with 4 additions and 1 deletions
|
@ -1462,7 +1462,10 @@ static bool mptcp_pm_remove_anno_addr(struct mptcp_sock *msk,
|
||||||
ret = remove_anno_list_by_saddr(msk, addr);
|
ret = remove_anno_list_by_saddr(msk, addr);
|
||||||
if (ret || force) {
|
if (ret || force) {
|
||||||
spin_lock_bh(&msk->pm.lock);
|
spin_lock_bh(&msk->pm.lock);
|
||||||
msk->pm.add_addr_signaled -= ret;
|
if (ret) {
|
||||||
|
__set_bit(addr->id, msk->pm.id_avail_bitmap);
|
||||||
|
msk->pm.add_addr_signaled--;
|
||||||
|
}
|
||||||
mptcp_pm_remove_addr(msk, &list);
|
mptcp_pm_remove_addr(msk, &list);
|
||||||
spin_unlock_bh(&msk->pm.lock);
|
spin_unlock_bh(&msk->pm.lock);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue