@@ -5594,7 +5594,7 @@ static struct btf *btf_parse(bpfptr_t btf_data, u32 btf_data_size,
}
bpf_vlog_finalize(log);
- if (log->level && bpf_vlog_truncated(log)) {
+ if (bpf_vlog_truncated(log)) {
err = -ENOSPC;
goto errout_meta;
}
@@ -167,7 +167,9 @@ static int bpf_vlog_reverse_ubuf(struct bpf_verifier_log *log, int start, int en
bool bpf_vlog_truncated(const struct bpf_verifier_log *log)
{
- if (log->level & BPF_LOG_FIXED)
+ if (!log->level)
+ return false;
+ else if (log->level & BPF_LOG_FIXED)
return bpf_log_used(log) >= log->len_total - 1;
else
return log->start_pos > 0;
@@ -18787,12 +18787,10 @@ int bpf_check(struct bpf_prog **prog, union bpf_attr *attr, bpfptr_t uattr)
env->prog->aux->verified_insns = env->insn_processed;
bpf_vlog_finalize(log);
- if (log->level && bpf_vlog_truncated(log))
+ if (bpf_vlog_truncated(log))
ret = -ENOSPC;
- if (log->level && log->level != BPF_LOG_KERNEL && !log->ubuf) {
+ if (log->level && log->level != BPF_LOG_KERNEL && !log->ubuf)
ret = -EFAULT;
- goto err_release_maps;
- }
if (ret)
goto err_release_maps;
Move log->level == 0 check into bpf_vlog_truncated() instead of doing it explicitly. Also remove unnecessary goto in kernel/bpf/verifier.c. Signed-off-by: Andrii Nakryiko <andrii@kernel.org> --- kernel/bpf/btf.c | 2 +- kernel/bpf/log.c | 4 +++- kernel/bpf/verifier.c | 6 ++---- 3 files changed, 6 insertions(+), 6 deletions(-)