Thread (6 messages) 6 messages, 2 authors, 2021-12-02

Re: [PATCH bpf-next v4 2/2] bpf: disallow BPF_LOG_KERNEL log level for bpf(BPF_BTF_LOAD)

From: Hou Tao <hidden>
Date: 2021-12-02 03:42:36
Also in: bpf

Hi,

On 12/2/2021 1:42 AM, Alexei Starovoitov wrote:
On Tue, Nov 30, 2021 at 11:19 PM Hou Tao [off-list ref] wrote:
quoted
BPF_LOG_KERNEL is only used internally, so disallow bpf_btf_load()
to set log level as BPF_LOG_KERNEL. The same checking has already
been done in bpf_check(), so factor out a helper to check the
validity of log attributes and use it in both places.
snip
quoted
-               ret = -EINVAL;
                /* log attributes have to be sane */
-               if (log->len_total < 128 || log->len_total > UINT_MAX >> 2 ||
-                   !log->level || !log->ubuf || log->level & ~BPF_LOG_MASK)
+               if (!bpf_verifier_log_attr_valid(log, UINT_MAX >> 2)) {
+                       ret = -EINVAL;
It's actually quite bad that we have this discrepancy in limits.
I've already sent a patch to make them the same.
It was a pain to debug.
https://lore.kernel.org/bpf/20211124060209.493-7-alexei.starovoitov@gmail.com/ (local)
"
Otherwise tools that progressively increase log size and use the same log
for BTF loading and program loading will be hitting hard to debug EINVAL.
"
OK. Will send a single patch to handle that based on your patch set.

Regards,
Tao
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help