7df5072cc0
In particular these include: 1) Remove output of inv for scalars in print_verifier_state 2) Replace inv with scalar in verifier error messages 3) Remove _value suffixes for umin/umax/s32_min/etc (except map_value) 4) Remove output of id=0 5) Remove output of ref_obj_id=0 Signed-off-by: Mykola Lysenko <mykolal@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Andrii Nakryiko <andrii@kernel.org> Link: https://lore.kernel.org/bpf/20220301222745.1667206-1-mykolal@fb.com
26 lines
941 B
C
26 lines
941 B
C
#define __INVALID_ATOMIC_ACCESS_TEST(op) \
|
|
{ \
|
|
"atomic " #op " access through non-pointer ", \
|
|
.insns = { \
|
|
BPF_MOV64_IMM(BPF_REG_0, 1), \
|
|
BPF_MOV64_IMM(BPF_REG_1, 0), \
|
|
BPF_ATOMIC_OP(BPF_DW, op, BPF_REG_1, BPF_REG_0, -8), \
|
|
BPF_MOV64_IMM(BPF_REG_0, 0), \
|
|
BPF_EXIT_INSN(), \
|
|
}, \
|
|
.result = REJECT, \
|
|
.errstr = "R1 invalid mem access 'scalar'" \
|
|
}
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_ADD | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_AND),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_AND | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_OR),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_OR | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XOR),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XOR | BPF_FETCH),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_XCHG),
|
|
__INVALID_ATOMIC_ACCESS_TEST(BPF_CMPXCHG),
|