Kuniyuki Iwashima 9402362b4c af_unix: Use skb_queue_empty_lockless() in unix_release_sock().
[ Upstream commit 83690b82d228b3570565ebd0b41873933238b97f ]

If the socket type is SOCK_STREAM or SOCK_SEQPACKET, unix_release_sock()
checks the length of the peer socket's recvq under unix_state_lock().

However, unix_stream_read_generic() calls skb_unlink() after releasing
the lock.  Also, for SOCK_SEQPACKET, __skb_try_recv_datagram() unlinks
skb without unix_state_lock().

Thues, unix_state_lock() does not protect qlen.

Let's use skb_queue_empty_lockless() in unix_release_sock().

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:14:09 +02:00
..
2023-10-19 23:05:36 +02:00
2024-07-05 09:14:07 +02:00
2024-03-26 18:21:36 -04:00
2024-05-17 11:50:48 +02:00
2024-06-16 13:39:33 +02:00
2024-05-17 11:51:04 +02:00
2023-06-21 15:59:15 +02:00
2023-06-21 15:59:15 +02:00