Unverified Commit 09f6443d authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!15413 CVE-2025-21756

Merge Pull Request from: @ci-robot 
 
PR sync from: Liu Jian <liujian56@huawei.com>
https://mailweb.openeuler.org/archives/list/kernel@openeuler.org/message/IAWHW734DNCQS4K3EDBPO4DC4CUPFRVO/ 
CVE-2025-21756

Michal Luczaj (2):
  vsock: Keep the binding until socket destruction
  vsock: Orphan socket after transport release

 
https://gitee.com/src-openeuler/kernel/issues/IBPC5N 
 
Link:https://gitee.com/openeuler/kernel/pulls/15413

 

Reviewed-by: default avatarLi Nan <linan122@huawei.com>
Reviewed-by: default avatarZhang Changzhong <zhangchangzhong@huawei.com>
Signed-off-by: default avatarLi Nan <linan122@huawei.com>
parents 2e32af65 068518f6
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -328,7 +328,10 @@ EXPORT_SYMBOL_GPL(vsock_find_connected_socket);

void vsock_remove_sock(struct vsock_sock *vsk)
{
	/* Transport reassignment must not remove the binding. */
	if (sock_flag(sk_vsock(vsk), SOCK_DEAD))
		vsock_remove_bound(vsk);

	vsock_remove_connected(vsk);
}
EXPORT_SYMBOL_GPL(vsock_remove_sock);
@@ -772,6 +775,13 @@ static void __vsock_release(struct sock *sk, int level)
		 */
		lock_sock_nested(sk, level);

		/* Indicate to vsock_remove_sock() that the socket is being released and
		 * can be removed from the bound_table. Unlike transport reassignment
		 * case, where the socket must remain bound despite vsock_remove_sock()
		 * being called from the transport release() callback.
		 */
		sock_set_flag(sk, SOCK_DEAD);

		if (vsk->transport)
			vsk->transport->release(vsk);
		else if (sk->sk_type == SOCK_STREAM)