bpf: Ignore verifier log reset in BPF_LOG_KERNEL mode
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 6 Apr 2023 23:41:53 +0000 (16:41 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Tue, 11 Apr 2023 16:05:43 +0000 (18:05 +0200)
Verifier log position reset is meaningless in BPF_LOG_KERNEL mode, so
just exit early in bpf_vlog_reset() if log->level is BPF_LOG_KERNEL.

This avoid meaningless put_user() into NULL log->ubuf.

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-8-andrii@kernel.org
kernel/bpf/log.c

index 92b1c8a..d99a50f 100644 (file)
@@ -106,7 +106,7 @@ void bpf_vlog_reset(struct bpf_verifier_log *log, u64 new_pos)
        if (WARN_ON_ONCE(new_pos > log->end_pos))
                return;
 
-       if (!bpf_verifier_log_needed(log))
+       if (!bpf_verifier_log_needed(log) || log->level == BPF_LOG_KERNEL)
                return;
 
        /* if position to which we reset is beyond current log window,