mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 10:31:46 +09:00
af_unix: Annotate data-race of sk->sk_state in unix_stream_read_skb().
[ Upstream commit af4c733b6b1aded4dc808fafece7dfe6e9d2ebb3 ]
unix_stream_read_skb() is called from sk->sk_data_ready() context
where unix_state_lock() is not held.
Let's use READ_ONCE() there.
Fixes: 77462de14a ("af_unix: Add read_sock for stream socket types")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
f53cf0449e
commit
fda68a7da8
@@ -2716,7 +2716,7 @@ static struct sk_buff *manage_oob(struct sk_buff *skb, struct sock *sk,
|
|||||||
|
|
||||||
static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
|
static int unix_stream_read_skb(struct sock *sk, skb_read_actor_t recv_actor)
|
||||||
{
|
{
|
||||||
if (unlikely(sk->sk_state != TCP_ESTABLISHED))
|
if (unlikely(READ_ONCE(sk->sk_state) != TCP_ESTABLISHED))
|
||||||
return -ENOTCONN;
|
return -ENOTCONN;
|
||||||
|
|
||||||
return unix_read_skb(sk, recv_actor);
|
return unix_read_skb(sk, recv_actor);
|
||||||
|
|||||||
Reference in New Issue
Block a user