This group is locked. No changes can be made to the group while it is locked.
Re: math between pkt pointer and register with unbounded min value is not allowed #verifier
Jiong Wang
On 27 Mar 2019, at 16:43, Simon <contact@...> wrote:Just my humble opinion, I would recommend: 1. get used to verifier rejection information, for example: R0=inv1 R1=pkt(id=0,off=0,r=42,imm=0) R2=pkt_end(id=0,off=0,imm=0) R3=inv(id=0) R4=inv(id=0,umax_value=504,var_off=(0x0; 0x1ff)) R5=inv5 R10=fp0,call_-1 40: (0f) r1 += r3 math between pkt pointer and register with unbounded min value is not allowed It tells you the status of each registers at the rejection point, for example, now R3 is “inv”, meaning a scalar value (not a pointer), and is without value range, then r4 has value range, and maximum value is 504. 2. known what verifier will reject. Could refer to: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/testing/selftests/bpf/verifier?id=473c5daa86ffe91e937856cc32b4faa61db2e3e3 those are unit examples of what will be rejected, and some of them are with meaningful test name or comments so could be easy to understand. Regards, Jiong |