Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c01f6c9b authored by YueHaibing's avatar YueHaibing Committed by David S. Miller
Browse files

rxrpc: Fix user call ID check in rxrpc_service_prealloc_one



There just check the user call ID isn't already in use, hence should
compare user_call_ID with xcall->user_call_ID, which is current
node's user_call_ID.

Fixes: 540b1c48 ("rxrpc: Fix deadlock between call creation and sendmsg/recvmsg")
Suggested-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarYueHaibing <yuehaibing@huawei.com>
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a94c689e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -116,9 +116,9 @@ static int rxrpc_service_prealloc_one(struct rxrpc_sock *rx,
		while (*pp) {
			parent = *pp;
			xcall = rb_entry(parent, struct rxrpc_call, sock_node);
			if (user_call_ID < call->user_call_ID)
			if (user_call_ID < xcall->user_call_ID)
				pp = &(*pp)->rb_left;
			else if (user_call_ID > call->user_call_ID)
			else if (user_call_ID > xcall->user_call_ID)
				pp = &(*pp)->rb_right;
			else
				goto id_in_use;