diff options
author | David Howells <[email protected]> | 2023-06-07 19:19:07 +0100 |
---|---|---|
committer | Jakub Kicinski <[email protected]> | 2023-06-08 19:40:30 -0700 |
commit | 4fe38acdac8a71f7cccf347a2e9902bc818ecef7 (patch) | |
tree | 9238a6b230b5b5b5500ed0f5efe9d3da9c3f0515 /tools/perf/scripts/python/libxed.py | |
parent | 736013292e3ca5ec2aabb32daf72a73b1256ac57 (diff) |
net: Block MSG_SENDPAGE_* from being passed to sendmsg() by userspace
It is necessary to allow MSG_SENDPAGE_* to be passed into ->sendmsg() to
allow sendmsg(MSG_SPLICE_PAGES) to replace ->sendpage(). Unblocking them
in the network protocol, however, allows these flags to be passed in by
userspace too[1].
Fix this by marking MSG_SENDPAGE_NOPOLICY, MSG_SENDPAGE_NOTLAST and
MSG_SENDPAGE_DECRYPTED as internal flags, which causes sendmsg() to object
if they are passed to sendmsg() by userspace. Network protocol ->sendmsg()
implementations can then allow them through.
Note that it should be possible to remove MSG_SENDPAGE_NOTLAST once
sendpage is removed as a whole slew of pages will be passed in in one go by
splice through sendmsg, with MSG_MORE being set if it has more data waiting
in the pipe.
Signed-off-by: David Howells <[email protected]>
cc: Chuck Lever <[email protected]>
cc: Boris Pismenny <[email protected]>
cc: John Fastabend <[email protected]>
cc: Jens Axboe <[email protected]>
cc: Matthew Wilcox <[email protected]>
Link: https://lore.kernel.org/r/[email protected]/ [1]
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'tools/perf/scripts/python/libxed.py')
0 files changed, 0 insertions, 0 deletions