Skip to content

Commit 47a049b

Browse files
matttbegregkh
authored andcommitted
mptcp: pm: re-using ID of unused removed ADD_ADDR
commit e255683 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: b6c0838 ("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>
1 parent f771ed5 commit 47a049b

1 file changed

Lines changed: 4 additions & 1 deletion

File tree

net/mptcp/pm_netlink.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1431,7 +1431,10 @@ static bool mptcp_pm_remove_anno_addr(struct mptcp_sock *msk,
14311431
ret = remove_anno_list_by_saddr(msk, addr);
14321432
if (ret || force) {
14331433
spin_lock_bh(&msk->pm.lock);
1434-
msk->pm.add_addr_signaled -= ret;
1434+
if (ret) {
1435+
__set_bit(addr->id, msk->pm.id_avail_bitmap);
1436+
msk->pm.add_addr_signaled--;
1437+
}
14351438
mptcp_pm_remove_addr(msk, &list);
14361439
spin_unlock_bh(&msk->pm.lock);
14371440
}

0 commit comments

Comments
 (0)