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