btf_parse() is missing -EFAULT error return if log->ubuf was NULL-ed out
due to error while copying data into user-provided buffer. Add it, but
handle a special case of BPF_LOG_KERNEL in which log->ubuf is always NULL.
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-9-andrii@kernel.org
err = -ENOSPC;
goto errout_meta;
}
+ if (log->level && log->level != BPF_LOG_KERNEL && !log->ubuf) {
+ err = -EFAULT;
+ goto errout_meta;
+ }
btf_verifier_env_free(env);
refcount_set(&btf->refcnt, 1);