0001 {
0002 "bpf_exit with invalid return code. test1",
0003 .insns = {
0004 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 0),
0005 BPF_EXIT_INSN(),
0006 },
0007 .errstr = "R0 has value (0x0; 0xffffffff)",
0008 .result = REJECT,
0009 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0010 },
0011 {
0012 "bpf_exit with invalid return code. test2",
0013 .insns = {
0014 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 0),
0015 BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 1),
0016 BPF_EXIT_INSN(),
0017 },
0018 .result = ACCEPT,
0019 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0020 },
0021 {
0022 "bpf_exit with invalid return code. test3",
0023 .insns = {
0024 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 0),
0025 BPF_ALU64_IMM(BPF_AND, BPF_REG_0, 3),
0026 BPF_EXIT_INSN(),
0027 },
0028 .errstr = "R0 has value (0x0; 0x3)",
0029 .result = REJECT,
0030 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0031 },
0032 {
0033 "bpf_exit with invalid return code. test4",
0034 .insns = {
0035 BPF_MOV64_IMM(BPF_REG_0, 1),
0036 BPF_EXIT_INSN(),
0037 },
0038 .result = ACCEPT,
0039 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0040 },
0041 {
0042 "bpf_exit with invalid return code. test5",
0043 .insns = {
0044 BPF_MOV64_IMM(BPF_REG_0, 2),
0045 BPF_EXIT_INSN(),
0046 },
0047 .errstr = "R0 has value (0x2; 0x0)",
0048 .result = REJECT,
0049 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0050 },
0051 {
0052 "bpf_exit with invalid return code. test6",
0053 .insns = {
0054 BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
0055 BPF_EXIT_INSN(),
0056 },
0057 .errstr = "R0 is not a known value (ctx)",
0058 .result = REJECT,
0059 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0060 },
0061 {
0062 "bpf_exit with invalid return code. test7",
0063 .insns = {
0064 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 0),
0065 BPF_LDX_MEM(BPF_W, BPF_REG_2, BPF_REG_1, 4),
0066 BPF_ALU64_REG(BPF_MUL, BPF_REG_0, BPF_REG_2),
0067 BPF_EXIT_INSN(),
0068 },
0069 .errstr = "R0 has unknown scalar value",
0070 .result = REJECT,
0071 .prog_type = BPF_PROG_TYPE_CGROUP_SOCK,
0072 },