On 04/13, Stanislav Fomichev wrote: > On Thu, Apr 13, 2023 at 7:38 AM Aleksandr Mikhalitsyn > <aleksandr.mikhalitsyn@xxxxxxxxxxxxx> wrote: > > > > On Thu, Apr 13, 2023 at 4:22 PM Eric Dumazet <edumazet@xxxxxxxxxx> wrote: > > > > > > On Thu, Apr 13, 2023 at 3:35 PM Alexander Mikhalitsyn > > > <aleksandr.mikhalitsyn@xxxxxxxxxxxxx> wrote: > > > > > > > > During work on SO_PEERPIDFD, it was discovered (thanks to Christian), > > > > that bpf cgroup hook can cause FD leaks when used with sockopts which > > > > install FDs into the process fdtable. > > > > > > > > After some offlist discussion it was proposed to add a blacklist of > > > > > > We try to replace this word by either denylist or blocklist, even in changelogs. > > > > Hi Eric, > > > > Oh, I'm sorry about that. :( Sure. > > > > > > > > > socket options those can cause troubles when BPF cgroup hook is enabled. > > > > > > > > > > Can we find the appropriate Fixes: tag to help stable teams ? > > > > Sure, I will add next time. > > > > Fixes: 0d01da6afc54 ("bpf: implement getsockopt and setsockopt hooks") > > > > I think it's better to add Stanislav Fomichev to CC. > > Can we use 'struct proto' bpf_bypass_getsockopt instead? We already > use it for tcp zerocopy, I'm assuming it should work in this case as > well? Jakub reminded me of the other things I wanted to ask here bug forgot: - setsockopt is probably not needed, right? setsockopt hook triggers before the kernel and shouldn't leak anything - for getsockopt, instead of bypassing bpf completely, should we instead ignore the error from the bpf program? that would still preserve the observability aspect - or maybe we can even have a per-proto bpf_getsockopt_cleanup call that gets called whenever bpf returns an error to make sure protocols have a chance to handle that condition (and free the fd) > > Kind regards, > > Alex > > > > > > > > > Cc: "David S. Miller" <davem@xxxxxxxxxxxxx> > > > > Cc: Eric Dumazet <edumazet@xxxxxxxxxx> > > > > Cc: Jakub Kicinski <kuba@xxxxxxxxxx> > > > > Cc: Paolo Abeni <pabeni@xxxxxxxxxx> > > > > Cc: Leon Romanovsky <leon@xxxxxxxxxx> > > > > Cc: David Ahern <dsahern@xxxxxxxxxx> > > > > Cc: Arnd Bergmann <arnd@xxxxxxxx> > > > > Cc: Kees Cook <keescook@xxxxxxxxxxxx> > > > > Cc: Christian Brauner <brauner@xxxxxxxxxx> > > > > Cc: Kuniyuki Iwashima <kuniyu@xxxxxxxxxx> > > > > Cc: Lennart Poettering <mzxreary@xxxxxxxxxxx> > > > > Cc: linux-kernel@xxxxxxxxxxxxxxx > > > > Cc: netdev@xxxxxxxxxxxxxxx > > > > Cc: linux-arch@xxxxxxxxxxxxxxx > > > > Suggested-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx> > > > > Suggested-by: Christian Brauner <brauner@xxxxxxxxxx> > > > > Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@xxxxxxxxxxxxx> > > > > > > Thanks.