51 lines · c
1{2 "invalid call insn1",3 .insns = {4 BPF_RAW_INSN(BPF_JMP | BPF_CALL | BPF_X, 0, 0, 0, 0),5 BPF_EXIT_INSN(),6 },7 .errstr = "unknown opcode 8d",8 .result = REJECT,9},10{11 "invalid call insn2",12 .insns = {13 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 1, 0),14 BPF_EXIT_INSN(),15 },16 .errstr = "BPF_CALL uses reserved",17 .result = REJECT,18},19{20 "invalid function call",21 .insns = {22 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, 1234567),23 BPF_EXIT_INSN(),24 },25 .errstr = "invalid func unknown#1234567",26 .result = REJECT,27},28{29 "invalid argument register",30 .insns = {31 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),32 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),33 BPF_EXIT_INSN(),34 },35 .errstr = "R1 !read_ok",36 .result = REJECT,37 .prog_type = BPF_PROG_TYPE_SCHED_CLS,38},39{40 "non-invalid argument register",41 .insns = {42 BPF_ALU64_REG(BPF_MOV, BPF_REG_6, BPF_REG_1),43 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),44 BPF_ALU64_REG(BPF_MOV, BPF_REG_1, BPF_REG_6),45 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_cgroup_classid),46 BPF_EXIT_INSN(),47 },48 .result = ACCEPT,49 .prog_type = BPF_PROG_TYPE_SCHED_CLS,50},51