diff options
author | Alexei Starovoitov <ast@fb.com> | 2018-01-05 18:02:00 -0500 |
---|---|---|
committer | Daniel Borkmann <daniel@iogearbox.net> | 2018-01-06 18:10:32 -0500 |
commit | 2b36047e7889b7efee22c11e17f035f721855731 (patch) | |
tree | 0d7ec4ba60ccb884e26837f97a0ff476e2a02e9e | |
parent | 5731a879d03bdaa00265f8ebc32dfd0e65d25276 (diff) |
selftests/bpf: fix test_align
since commit 82abbf8d2fc4 the verifier rejects the bit-wise
arithmetic on pointers earlier.
The test 'dubious pointer arithmetic' now has less output to match on.
Adjust it.
Fixes: 82abbf8d2fc4 ("bpf: do not allow root to mangle valid pointers")
Reported-by: kernel test robot <xiaolong.ye@intel.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
-rw-r--r-- | tools/testing/selftests/bpf/test_align.c | 22 |
1 files changed, 1 insertions, 21 deletions
diff --git a/tools/testing/selftests/bpf/test_align.c b/tools/testing/selftests/bpf/test_align.c index 8591c89c0828..471bbbdb94db 100644 --- a/tools/testing/selftests/bpf/test_align.c +++ b/tools/testing/selftests/bpf/test_align.c | |||
@@ -474,27 +474,7 @@ static struct bpf_align_test tests[] = { | |||
474 | .result = REJECT, | 474 | .result = REJECT, |
475 | .matches = { | 475 | .matches = { |
476 | {4, "R5=pkt(id=0,off=0,r=0,imm=0)"}, | 476 | {4, "R5=pkt(id=0,off=0,r=0,imm=0)"}, |
477 | /* ptr & 0x40 == either 0 or 0x40 */ | 477 | /* R5 bitwise operator &= on pointer prohibited */ |
478 | {5, "R5=inv(id=0,umax_value=64,var_off=(0x0; 0x40))"}, | ||
479 | /* ptr << 2 == unknown, (4n) */ | ||
480 | {7, "R5=inv(id=0,smax_value=9223372036854775804,umax_value=18446744073709551612,var_off=(0x0; 0xfffffffffffffffc))"}, | ||
481 | /* (4n) + 14 == (4n+2). We blow our bounds, because | ||
482 | * the add could overflow. | ||
483 | */ | ||
484 | {8, "R5=inv(id=0,var_off=(0x2; 0xfffffffffffffffc))"}, | ||
485 | /* Checked s>=0 */ | ||
486 | {10, "R5=inv(id=0,umin_value=2,umax_value=9223372036854775806,var_off=(0x2; 0x7ffffffffffffffc))"}, | ||
487 | /* packet pointer + nonnegative (4n+2) */ | ||
488 | {12, "R6=pkt(id=1,off=0,r=0,umin_value=2,umax_value=9223372036854775806,var_off=(0x2; 0x7ffffffffffffffc))"}, | ||
489 | {14, "R4=pkt(id=1,off=4,r=0,umin_value=2,umax_value=9223372036854775806,var_off=(0x2; 0x7ffffffffffffffc))"}, | ||
490 | /* NET_IP_ALIGN + (4n+2) == (4n), alignment is fine. | ||
491 | * We checked the bounds, but it might have been able | ||
492 | * to overflow if the packet pointer started in the | ||
493 | * upper half of the address space. | ||
494 | * So we did not get a 'range' on R6, and the access | ||
495 | * attempt will fail. | ||
496 | */ | ||
497 | {16, "R6=pkt(id=1,off=0,r=0,umin_value=2,umax_value=9223372036854775806,var_off=(0x2; 0x7ffffffffffffffc))"}, | ||
498 | } | 478 | } |
499 | }, | 479 | }, |
500 | { | 480 | { |