Re: [PATCH bpf-next 4/7] bpf: Attachment verification for BPF_MODIFY_RETURN

From: KP Singh
Date: Tue Mar 03 2020 - 20:06:28 EST


On 03-Mär 16:03, Alexei Starovoitov wrote:
> On Wed, Mar 04, 2020 at 12:21:51AM +0100, KP Singh wrote:
> >
> > > > + t = btf_type_skip_modifiers(btf, t->type, NULL);
> > > > + if (!btf_type_is_int(t)) {
> > >
> > > Should the size of int be verified here? E.g., if some function
> > > returns u8, is that ok for BPF program to return, say, (1<<30) ?
> >
> > Would this work?
> >
> > if (size != t->size) {
> > bpf_log(log,
> > "size accessed = %d should be %d\n",
> > size, t->size);
> > return false;
> > }
>
> It will cause spurious failures later when llvm optimizes
> if (ret & 0xff) into u8 load.
> I think btf_type_is_int() is enough as-is.

Okay skipping the size check.

- KP