Rao Shoaib
fa38ee41c9
af_unix: Read with MSG_PEEK loops if the first unread byte is OOB
...
[ Upstream commit a6736a0addd60fccc3a3508461d72314cc609772 ]
Read with MSG_PEEK flag loops if the first byte to read is an OOB byte.
commit 22dd70eb2c3d ("af_unix: Don't peek OOB data without MSG_OOB.")
addresses the loop issue but does not address the issue that no data
beyond OOB byte can be read.
>>> from socket import *
>>> c1, c2 = socketpair(AF_UNIX, SOCK_STREAM)
>>> c1.send(b'a', MSG_OOB)
1
>>> c1.send(b'b')
1
>>> c2.recv(1, MSG_PEEK | MSG_DONTWAIT)
b'b'
>>> from socket import *
>>> c1, c2 = socketpair(AF_UNIX, SOCK_STREAM)
>>> c2.setsockopt(SOL_SOCKET, SO_OOBINLINE, 1)
>>> c1.send(b'a', MSG_OOB)
1
>>> c1.send(b'b')
1
>>> c2.recv(1, MSG_PEEK | MSG_DONTWAIT)
b'a'
>>> c2.recv(1, MSG_PEEK | MSG_DONTWAIT)
b'a'
>>> c2.recv(1, MSG_DONTWAIT)
b'a'
>>> c2.recv(1, MSG_PEEK | MSG_DONTWAIT)
b'b'
>>>
Fixes: 314001f0bf92 ("af_unix: Add OOB support")
Signed-off-by: Rao Shoaib <Rao.Shoaib@oracle.com>
Reviewed-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240611084639.2248934-1-Rao.Shoaib@oracle.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-07-05 09:14:19 +02:00
..
2024-06-16 13:39:58 +02:00
2022-12-31 13:14:42 +01:00
2024-02-23 08:54:27 +01:00
2023-12-20 15:17:37 +01:00
2023-12-20 15:17:35 +01:00
2022-06-22 14:22:01 +02:00
2024-04-17 11:15:13 +02:00
2024-07-05 09:14:18 +02:00
2024-07-05 09:14:06 +02:00
2024-05-17 11:50:58 +02:00
2023-03-17 08:48:54 +01:00
2024-02-23 08:55:10 +01:00
2023-10-19 23:05:36 +02:00
2024-07-05 09:14:11 +02:00
2023-08-11 15:13:53 +02:00
2023-11-28 16:56:22 +00:00
2024-01-25 14:52:46 -08:00
2024-06-16 13:39:54 +02:00
2024-05-02 16:24:49 +02:00
2024-01-25 14:52:54 -08:00
2024-03-26 18:21:36 -04:00
2024-07-05 09:14:08 +02:00
2024-01-05 15:13:29 +01:00
2024-07-05 09:14:08 +02:00
2024-07-05 09:14:19 +02:00
2024-03-26 18:21:13 -04:00
2024-03-26 18:21:23 -04:00
2023-08-26 14:23:32 +02:00
2024-05-17 11:50:48 +02:00
2022-04-27 14:38:53 +02:00
2024-02-23 08:54:54 +01:00
2024-07-05 09:14:05 +02:00
2024-04-10 16:18:39 +02:00
2023-10-25 11:58:59 +02:00
2023-02-22 12:57:09 +01:00
2024-06-16 13:39:54 +02:00
2024-07-05 09:14:06 +02:00
2024-07-05 09:14:18 +02:00
2024-01-25 14:52:33 -08:00
2024-07-05 09:14:08 +02:00
2024-06-16 13:39:33 +02:00
2024-06-16 13:39:48 +02:00
2024-05-17 11:50:48 +02:00
2024-06-16 13:39:47 +02:00
2024-07-05 09:14:08 +02:00
2024-05-17 11:50:58 +02:00
2023-12-13 18:36:37 +01:00
2024-06-16 13:39:33 +02:00
2024-04-10 16:19:37 +02:00
2024-01-05 15:13:34 +01:00
2024-01-05 15:13:29 +01:00
2024-02-23 08:54:58 +01:00
2024-07-05 09:14:07 +02:00
2024-07-05 09:14:08 +02:00
2024-07-05 09:14:08 +02:00
2024-07-05 09:14:16 +02:00
2024-05-17 11:51:04 +02:00
2024-06-16 13:39:48 +02:00
2024-07-05 09:14:19 +02:00
2024-01-25 14:52:38 -08:00
2024-07-05 09:14:05 +02:00
2024-03-26 18:21:23 -04:00
2024-07-05 09:14:08 +02:00
2024-06-16 13:39:59 +02:00
2023-06-21 15:59:15 +02:00
2023-06-21 15:59:15 +02:00
2024-01-15 18:51:16 +01:00