Rao Shoaib
185c72f6b9
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-06-21 14:38:36 +02:00
..
2024-06-16 13:47:41 +02:00
2024-05-17 12:02:07 +02:00
2023-12-20 17:01:50 +01:00
2023-12-20 17:01:48 +01:00
2024-06-21 14:38:14 +02:00
2024-04-17 11:19:25 +02:00
2024-06-21 14:38:34 +02:00
2024-06-21 14:38:16 +02:00
2023-05-31 13:06:57 +02:00
2024-06-21 14:38:36 +02:00
2023-06-24 15:50:13 -07:00
2024-02-23 09:25:17 +01:00
2024-03-01 13:34:56 +01:00
2024-06-12 11:12:52 +02:00
2023-08-01 21:07:46 -07:00
2023-11-20 11:59:35 +01:00
2024-03-26 18:20:11 -04:00
2024-01-25 15:35:41 -08:00
2023-08-09 13:08:09 -07:00
2024-05-02 16:32:46 +02:00
2024-06-21 14:38:20 +02:00
2024-02-23 09:24:50 +01:00
2024-05-17 12:02:24 +02:00
2023-08-29 17:39:15 -07:00
2024-01-01 12:42:30 +00:00
2024-06-21 14:38:17 +02:00
2024-06-21 14:38:35 +02:00
2024-03-26 18:19:12 -04:00
2024-03-26 18:19:40 -04:00
2023-08-18 12:44:56 -07:00
2024-05-17 12:02:02 +02:00
2024-02-05 20:14:36 +00:00
2024-06-21 14:38:13 +02:00
2024-04-03 15:28:27 +02:00
2024-03-26 18:19:34 -04:00
2024-04-13 13:07:41 +02:00
2024-06-21 14:38:17 +02:00
2024-06-21 14:38:14 +02:00
2024-06-21 14:38:34 +02:00
2024-01-25 15:35:14 -08:00
2024-03-06 14:48:34 +00:00
2024-06-12 11:12:12 +02:00
2024-06-12 11:12:51 +02:00
2024-05-17 12:02:02 +02:00
2024-06-12 11:12:49 +02:00
2024-06-12 11:12:12 +02:00
2024-05-17 12:02:22 +02:00
2023-12-13 18:45:10 +01:00
2024-06-12 11:12:12 +02:00
2024-04-10 16:35:49 +02:00
2024-01-01 12:42:41 +00:00
2024-01-01 12:42:31 +00:00
2024-05-17 12:02:23 +02:00
2024-06-21 14:38:17 +02:00
2024-01-25 15:35:30 -08:00
2024-06-21 14:38:16 +02:00
2024-06-21 14:38:28 +02:00
2024-03-01 13:35:06 +01:00
2024-05-17 12:02:32 +02:00
2024-06-12 11:12:50 +02:00
2024-06-21 14:38:36 +02:00
2024-04-10 16:35:50 +02:00
2024-06-21 14:38:12 +02:00
2024-03-26 18:19:41 -04:00
2024-04-17 11:19:28 +02:00
2024-06-16 13:47:44 +02:00
2023-07-19 10:07:27 -07:00
2024-01-10 17:16:51 +01:00
2023-08-15 15:26:17 -07:00