1 | { |
2 | "test1 ld_imm64" , |
3 | .insns = { |
4 | BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), |
5 | BPF_LD_IMM64(BPF_REG_0, 0), |
6 | BPF_LD_IMM64(BPF_REG_0, 0), |
7 | BPF_LD_IMM64(BPF_REG_0, 1), |
8 | BPF_LD_IMM64(BPF_REG_0, 1), |
9 | BPF_MOV64_IMM(BPF_REG_0, 2), |
10 | BPF_EXIT_INSN(), |
11 | }, |
12 | .errstr = "jump into the middle of ldimm64 insn 1" , |
13 | .errstr_unpriv = "jump into the middle of ldimm64 insn 1" , |
14 | .result = REJECT, |
15 | }, |
16 | { |
17 | "test2 ld_imm64" , |
18 | .insns = { |
19 | BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), |
20 | BPF_LD_IMM64(BPF_REG_0, 0), |
21 | BPF_LD_IMM64(BPF_REG_0, 0), |
22 | BPF_LD_IMM64(BPF_REG_0, 1), |
23 | BPF_LD_IMM64(BPF_REG_0, 1), |
24 | BPF_EXIT_INSN(), |
25 | }, |
26 | .errstr = "jump into the middle of ldimm64 insn 1" , |
27 | .errstr_unpriv = "jump into the middle of ldimm64 insn 1" , |
28 | .result = REJECT, |
29 | }, |
30 | { |
31 | "test3 ld_imm64" , |
32 | .insns = { |
33 | BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1), |
34 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0), |
35 | BPF_LD_IMM64(BPF_REG_0, 0), |
36 | BPF_LD_IMM64(BPF_REG_0, 0), |
37 | BPF_LD_IMM64(BPF_REG_0, 1), |
38 | BPF_LD_IMM64(BPF_REG_0, 1), |
39 | BPF_EXIT_INSN(), |
40 | }, |
41 | .errstr = "invalid bpf_ld_imm64 insn" , |
42 | .result = REJECT, |
43 | }, |
44 | { |
45 | "test4 ld_imm64" , |
46 | .insns = { |
47 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0), |
48 | BPF_EXIT_INSN(), |
49 | }, |
50 | .errstr = "invalid bpf_ld_imm64 insn" , |
51 | .result = REJECT, |
52 | }, |
53 | { |
54 | "test6 ld_imm64" , |
55 | .insns = { |
56 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0), |
57 | BPF_RAW_INSN(0, 0, 0, 0, 0), |
58 | BPF_EXIT_INSN(), |
59 | }, |
60 | .result = ACCEPT, |
61 | }, |
62 | { |
63 | "test7 ld_imm64" , |
64 | .insns = { |
65 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1), |
66 | BPF_RAW_INSN(0, 0, 0, 0, 1), |
67 | BPF_EXIT_INSN(), |
68 | }, |
69 | .result = ACCEPT, |
70 | .retval = 1, |
71 | }, |
72 | { |
73 | "test8 ld_imm64" , |
74 | .insns = { |
75 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 1, 1), |
76 | BPF_RAW_INSN(0, 0, 0, 0, 1), |
77 | BPF_EXIT_INSN(), |
78 | }, |
79 | .errstr = "uses reserved fields" , |
80 | .result = REJECT, |
81 | }, |
82 | { |
83 | "test9 ld_imm64" , |
84 | .insns = { |
85 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1), |
86 | BPF_RAW_INSN(0, 0, 0, 1, 1), |
87 | BPF_EXIT_INSN(), |
88 | }, |
89 | .errstr = "invalid bpf_ld_imm64 insn" , |
90 | .result = REJECT, |
91 | }, |
92 | { |
93 | "test10 ld_imm64" , |
94 | .insns = { |
95 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1), |
96 | BPF_RAW_INSN(0, BPF_REG_1, 0, 0, 1), |
97 | BPF_EXIT_INSN(), |
98 | }, |
99 | .errstr = "invalid bpf_ld_imm64 insn" , |
100 | .result = REJECT, |
101 | }, |
102 | { |
103 | "test11 ld_imm64" , |
104 | .insns = { |
105 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1), |
106 | BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1), |
107 | BPF_EXIT_INSN(), |
108 | }, |
109 | .errstr = "invalid bpf_ld_imm64 insn" , |
110 | .result = REJECT, |
111 | }, |
112 | { |
113 | "test12 ld_imm64" , |
114 | .insns = { |
115 | BPF_MOV64_IMM(BPF_REG_1, 0), |
116 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1), |
117 | BPF_RAW_INSN(0, 0, 0, 0, 0), |
118 | BPF_EXIT_INSN(), |
119 | }, |
120 | .errstr = "not pointing to valid bpf_map" , |
121 | .result = REJECT, |
122 | }, |
123 | { |
124 | "test13 ld_imm64" , |
125 | .insns = { |
126 | BPF_MOV64_IMM(BPF_REG_1, 0), |
127 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1), |
128 | BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1), |
129 | BPF_EXIT_INSN(), |
130 | }, |
131 | .errstr = "invalid bpf_ld_imm64 insn" , |
132 | .result = REJECT, |
133 | }, |
134 | { |
135 | "test14 ld_imm64: reject 2nd imm != 0" , |
136 | .insns = { |
137 | BPF_MOV64_IMM(BPF_REG_0, 0), |
138 | BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_1, |
139 | BPF_PSEUDO_MAP_FD, 0, 0), |
140 | BPF_RAW_INSN(0, 0, 0, 0, 0xfefefe), |
141 | BPF_EXIT_INSN(), |
142 | }, |
143 | .fixup_map_hash_48b = { 1 }, |
144 | .errstr = "unrecognized bpf_ld_imm64 insn" , |
145 | .result = REJECT, |
146 | }, |
147 | |