summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAndrii Nakryiko <andrii@kernel.org>2023-04-07 01:41:55 +0200
committerDaniel Borkmann <daniel@iogearbox.net>2023-04-11 18:05:43 +0200
commitcbedb42a0da3bb48819b2200af4b4cb5d922c518 (patch)
tree402095837ef7b58c81bd4dbd09b4182f3817e21a /kernel
parentbpf: Fix missing -EFAULT return on user log buf error in btf_parse() (diff)
downloadlinux-cbedb42a0da3bb48819b2200af4b4cb5d922c518.tar.xz
linux-cbedb42a0da3bb48819b2200af4b4cb5d922c518.zip
bpf: Avoid incorrect -EFAULT error in BPF_LOG_KERNEL mode
If verifier log is in BPF_LOG_KERNEL mode, no log->ubuf is expected and it stays NULL throughout entire verification process. Don't erroneously return -EFAULT in such case. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Lorenz Bauer <lmb@isovalent.com> Link: https://lore.kernel.org/bpf/20230406234205.323208-10-andrii@kernel.org
Diffstat (limited to 'kernel')
-rw-r--r--kernel/bpf/verifier.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index a476bb319685..0323149803f5 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -18863,7 +18863,7 @@ skip_full_check:
bpf_vlog_finalize(log);
if (log->level && bpf_vlog_truncated(log))
ret = -ENOSPC;
- if (log->level && !log->ubuf) {
+ if (log->level && log->level != BPF_LOG_KERNEL && !log->ubuf) {
ret = -EFAULT;
goto err_release_maps;
}