diff options
| author | Kuniyuki Iwashima <[email protected]> | 2025-01-16 05:34:38 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2025-01-20 19:27:41 +0000 |
| commit | 533643b091dd6e246d57caf81e6892fa9cbb1cc9 (patch) | |
| tree | d64593a670463e8a16e333ee27d3bb20a83f8db6 /net/unix/garbage.c | |
| parent | af_unix: Set drop reason in __unix_gc(). (diff) | |
| download | kernel-533643b091dd6e246d57caf81e6892fa9cbb1cc9.tar.gz kernel-533643b091dd6e246d57caf81e6892fa9cbb1cc9.zip | |
af_unix: Set drop reason in manage_oob().
AF_UNIX SOCK_STREAM socket supports MSG_OOB.
When OOB data is sent to a socket, recv() will break at that point.
If the next recv() does not have MSG_OOB, the normal data following
the OOB data is returned.
Then, the OOB skb is dropped.
Let's define a new drop reason for that case in manage_oob().
# echo 1 > /sys/kernel/tracing/events/skb/kfree_skb/enable
# python3
>>> from socket import *
>>> s1, s2 = socketpair(AF_UNIX)
>>> s1.send(b'a', MSG_OOB)
>>> s1.send(b'b')
>>> s2.recv(2)
b'b'
# cat /sys/kernel/tracing/trace_pipe
...
python3-223 ... kfree_skb: ... location=unix_stream_read_generic+0x59e/0xc20 reason: UNIX_SKIP_OOB
Signed-off-by: Kuniyuki Iwashima <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/unix/garbage.c')
0 files changed, 0 insertions, 0 deletions
