bpf: Avoid incorrect -EFAULT error in BPF_LOG_KERNEL mode
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 6 Apr 2023 23:41:55 +0000 (16:41 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 11 Apr 2023 16:05:43 +0000 (18:05 +0200)
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
kernel/bpf/verifier.c

index a476bb3..0323149 100644 (file)
@@ -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;
        }