xref: /linux/tools/testing/selftests/bpf/verifier/junk_insn.c (revision 597473720f4dc69749542bfcfed4a927a43d935e)
1*40f2fbd5SJakub Kicinski {
2*40f2fbd5SJakub Kicinski 	"junk insn",
3*40f2fbd5SJakub Kicinski 	.insns = {
4*40f2fbd5SJakub Kicinski 	BPF_RAW_INSN(0, 0, 0, 0, 0),
5*40f2fbd5SJakub Kicinski 	BPF_EXIT_INSN(),
6*40f2fbd5SJakub Kicinski 	},
7*40f2fbd5SJakub Kicinski 	.errstr = "unknown opcode 00",
8*40f2fbd5SJakub Kicinski 	.result = REJECT,
9*40f2fbd5SJakub Kicinski },
10*40f2fbd5SJakub Kicinski {
11*40f2fbd5SJakub Kicinski 	"junk insn2",
12*40f2fbd5SJakub Kicinski 	.insns = {
13*40f2fbd5SJakub Kicinski 	BPF_RAW_INSN(1, 0, 0, 0, 0),
14*40f2fbd5SJakub Kicinski 	BPF_EXIT_INSN(),
15*40f2fbd5SJakub Kicinski 	},
16*40f2fbd5SJakub Kicinski 	.errstr = "BPF_LDX uses reserved fields",
17*40f2fbd5SJakub Kicinski 	.result = REJECT,
18*40f2fbd5SJakub Kicinski },
19*40f2fbd5SJakub Kicinski {
20*40f2fbd5SJakub Kicinski 	"junk insn3",
21*40f2fbd5SJakub Kicinski 	.insns = {
22*40f2fbd5SJakub Kicinski 	BPF_RAW_INSN(-1, 0, 0, 0, 0),
23*40f2fbd5SJakub Kicinski 	BPF_EXIT_INSN(),
24*40f2fbd5SJakub Kicinski 	},
25*40f2fbd5SJakub Kicinski 	.errstr = "unknown opcode ff",
26*40f2fbd5SJakub Kicinski 	.result = REJECT,
27*40f2fbd5SJakub Kicinski },
28*40f2fbd5SJakub Kicinski {
29*40f2fbd5SJakub Kicinski 	"junk insn4",
30*40f2fbd5SJakub Kicinski 	.insns = {
31*40f2fbd5SJakub Kicinski 	BPF_RAW_INSN(-1, -1, -1, -1, -1),
32*40f2fbd5SJakub Kicinski 	BPF_EXIT_INSN(),
33*40f2fbd5SJakub Kicinski 	},
34*40f2fbd5SJakub Kicinski 	.errstr = "unknown opcode ff",
35*40f2fbd5SJakub Kicinski 	.result = REJECT,
36*40f2fbd5SJakub Kicinski },
37*40f2fbd5SJakub Kicinski {
38*40f2fbd5SJakub Kicinski 	"junk insn5",
39*40f2fbd5SJakub Kicinski 	.insns = {
40*40f2fbd5SJakub Kicinski 	BPF_RAW_INSN(0x7f, -1, -1, -1, -1),
41*40f2fbd5SJakub Kicinski 	BPF_EXIT_INSN(),
42*40f2fbd5SJakub Kicinski 	},
43*40f2fbd5SJakub Kicinski 	.errstr = "BPF_ALU uses reserved fields",
44*40f2fbd5SJakub Kicinski 	.result = REJECT,
45*40f2fbd5SJakub Kicinski },
46