]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
af_unix: Reject SIOCATMARK on non-stream sockets
authorJiexun Wang <wangjiexun2025@gmail.com>
Wed, 6 May 2026 14:08:23 +0000 (22:08 +0800)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 May 2026 15:36:02 +0000 (08:36 -0700)
SIOCATMARK reports whether the receive queue is at the urgent mark for
MSG_OOB.

In AF_UNIX, MSG_OOB is supported only for SOCK_STREAM sockets.
SOCK_DGRAM and SOCK_SEQPACKET reject MSG_OOB in sendmsg() and recvmsg(),
so they should not support SIOCATMARK either.

Return -EOPNOTSUPP for non-stream sockets before checking the receive
queue.

Fixes: 314001f0bf92 ("af_unix: Add OOB support")
Cc: stable@kernel.org
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Suggested-by: Kuniyuki Iwashima <kuniyu@google.com>
Signed-off-by: Jiexun Wang <wangjiexun2025@gmail.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Reviewed-by: Kuniyuki Iwashima <kuniyu@google.com>
Link: https://patch.msgid.link/20260506140825.2987635-1-n05ec@lzu.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/unix/af_unix.c

index e2d787ca3e743dd52c0330bb145254d6e5e930b1..1cbf36ea043bd525e22204d6c4e9052956432a75 100644 (file)
@@ -3323,6 +3323,9 @@ static int unix_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
                        struct sk_buff *skb;
                        int answ = 0;
 
+                       if (sk->sk_type != SOCK_STREAM)
+                               return -EOPNOTSUPP;
+
                        mutex_lock(&u->iolock);
 
                        skb = skb_peek(&sk->sk_receive_queue);