[Question]: BPF_CGROUP_{GET,SET}SOCKOPT handling when optlen > PAGE_SIZE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The cgroup-bpf {get,set}sockopt prog is useful to change the optname behavior. The bpf prog usually just handles a few specific optnames and ignores most others. For the optnames that it ignores, it usually does not need to change the optlen. The exception is when optlen > PAGE_SIZE (or optval_end - optval). The bpf prog needs to set the optlen to 0 for this case or else the kernel will return -EFAULT to the userspace. It is usually not what the bpf prog wants because the bpf prog only expects error returning to userspace when it has explicitly 'return 0;' or used bpf_set_retval(). If a bpf prog always changes optlen for optnames that it does not care to 0, it may risk if the latter bpf prog in the same cgroup may want to change/look-at it.

Would like to explore if there is an easier way for the bpf prog to handle it. eg. does it make sense to track if the bpf prog has changed the ctx->optlen before returning -EFAULT to the user space when ctx.optlen > max_optlen?



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux