bpf: Don't EFAULT for getsockopt with optval=NULL
authorStanislav Fomichev <sdf@google.com>
Tue, 18 Apr 2023 22:53:38 +0000 (15:53 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Fri, 21 Apr 2023 15:09:53 +0000 (17:09 +0200)
commit00e74ae0863827d944e36e56a4ce1e77e50edb91
tree45386bd1708469bd4cb557ef4bb1b11c56261d58
parent02e93e0475df21a1091a9833c52c0e241586573a
bpf: Don't EFAULT for getsockopt with optval=NULL

Some socket options do getsockopt with optval=NULL to estimate the size
of the final buffer (which is returned via optlen). This breaks BPF
getsockopt assumptions about permitted optval buffer size. Let's enforce
these assumptions only when non-NULL optval is provided.

Fixes: 0d01da6afc54 ("bpf: implement getsockopt and setsockopt hooks")
Reported-by: Martin KaFai Lau <martin.lau@kernel.org>
Signed-off-by: Stanislav Fomichev <sdf@google.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/ZD7Js4fj5YyI2oLd@google.com/T/#mb68daf700f87a9244a15d01d00c3f0e5b08f49f7
Link: https://lore.kernel.org/bpf/20230418225343.553806-2-sdf@google.com
kernel/bpf/cgroup.c