summaryrefslogtreecommitdiffstats
path: root/net/core/filter.c
diff options
context:
space:
mode:
authorStanislav Fomichev <sdf@google.com>2020-07-06 16:01:25 -0700
committerDaniel Borkmann <daniel@iogearbox.net>2020-07-08 01:03:31 +0200
commitf5836749c9c04a10decd2742845ad4870965fdef (patch)
tree44335764c2ebba2099ba8bf26267bdfac7c36ed1 /net/core/filter.c
parent4e48978cd28ce51945c08650e5c5502ca41e1fcc (diff)
downloadlinux-stable-f5836749c9c04a10decd2742845ad4870965fdef.tar.gz
linux-stable-f5836749c9c04a10decd2742845ad4870965fdef.tar.bz2
linux-stable-f5836749c9c04a10decd2742845ad4870965fdef.zip
bpf: Add BPF_CGROUP_INET_SOCK_RELEASE hook
Sometimes it's handy to know when the socket gets freed. In particular, we'd like to try to use a smarter allocation of ports for bpf_bind and explore the possibility of limiting the number of SOCK_DGRAM sockets the process can have. Implement BPF_CGROUP_INET_SOCK_RELEASE hook that triggers on inet socket release. It triggers only for userspace sockets (not in-kernel ones) and therefore has the same semantics as the existing BPF_CGROUP_INET_SOCK_CREATE. Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20200706230128.4073544-2-sdf@google.com
Diffstat (limited to 'net/core/filter.c')
-rw-r--r--net/core/filter.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index c5e696e6c315..ddcc0d6209e1 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -6890,6 +6890,7 @@ static bool __sock_filter_check_attach_type(int off,
case offsetof(struct bpf_sock, priority):
switch (attach_type) {
case BPF_CGROUP_INET_SOCK_CREATE:
+ case BPF_CGROUP_INET_SOCK_RELEASE:
goto full_access;
default:
return false;