Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  1{
  2	"masking, test out of bounds 1",
  3	.insns = {
  4	BPF_MOV32_IMM(BPF_REG_1, 5),
  5	BPF_MOV32_IMM(BPF_REG_2, 5 - 1),
  6	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
  7	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
  8	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
  9	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 10	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 11	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 12	BPF_EXIT_INSN(),
 13	},
 14	.result = ACCEPT,
 15	.retval = 0,
 16},
 17{
 18	"masking, test out of bounds 2",
 19	.insns = {
 20	BPF_MOV32_IMM(BPF_REG_1, 1),
 21	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
 22	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
 23	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
 24	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
 25	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 26	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 27	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 28	BPF_EXIT_INSN(),
 29	},
 30	.result = ACCEPT,
 31	.retval = 0,
 32},
 33{
 34	"masking, test out of bounds 3",
 35	.insns = {
 36	BPF_MOV32_IMM(BPF_REG_1, 0xffffffff),
 37	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
 38	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
 39	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
 40	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
 41	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 42	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 43	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 44	BPF_EXIT_INSN(),
 45	},
 46	.result = ACCEPT,
 47	.retval = 0,
 48},
 49{
 50	"masking, test out of bounds 4",
 51	.insns = {
 52	BPF_MOV32_IMM(BPF_REG_1, 0xffffffff),
 53	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
 54	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
 55	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
 56	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
 57	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 58	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 59	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 60	BPF_EXIT_INSN(),
 61	},
 62	.result = ACCEPT,
 63	.retval = 0,
 64},
 65{
 66	"masking, test out of bounds 5",
 67	.insns = {
 68	BPF_MOV32_IMM(BPF_REG_1, -1),
 69	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
 70	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
 71	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
 72	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
 73	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 74	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 75	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 76	BPF_EXIT_INSN(),
 77	},
 78	.result = ACCEPT,
 79	.retval = 0,
 80},
 81{
 82	"masking, test out of bounds 6",
 83	.insns = {
 84	BPF_MOV32_IMM(BPF_REG_1, -1),
 85	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
 86	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
 87	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
 88	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
 89	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
 90	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
 91	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
 92	BPF_EXIT_INSN(),
 93	},
 94	.result = ACCEPT,
 95	.retval = 0,
 96},
 97{
 98	"masking, test out of bounds 7",
 99	.insns = {
100	BPF_MOV64_IMM(BPF_REG_1, 5),
101	BPF_MOV32_IMM(BPF_REG_2, 5 - 1),
102	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
103	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
104	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
105	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
106	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
107	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
108	BPF_EXIT_INSN(),
109	},
110	.result = ACCEPT,
111	.retval = 0,
112},
113{
114	"masking, test out of bounds 8",
115	.insns = {
116	BPF_MOV64_IMM(BPF_REG_1, 1),
117	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
118	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
119	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
120	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
121	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
122	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
123	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
124	BPF_EXIT_INSN(),
125	},
126	.result = ACCEPT,
127	.retval = 0,
128},
129{
130	"masking, test out of bounds 9",
131	.insns = {
132	BPF_MOV64_IMM(BPF_REG_1, 0xffffffff),
133	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
134	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
135	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
136	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
137	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
138	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
139	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
140	BPF_EXIT_INSN(),
141	},
142	.result = ACCEPT,
143	.retval = 0,
144},
145{
146	"masking, test out of bounds 10",
147	.insns = {
148	BPF_MOV64_IMM(BPF_REG_1, 0xffffffff),
149	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
150	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
151	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
152	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
153	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
154	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
155	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
156	BPF_EXIT_INSN(),
157	},
158	.result = ACCEPT,
159	.retval = 0,
160},
161{
162	"masking, test out of bounds 11",
163	.insns = {
164	BPF_MOV64_IMM(BPF_REG_1, -1),
165	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
166	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
167	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
168	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
169	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
170	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
171	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
172	BPF_EXIT_INSN(),
173	},
174	.result = ACCEPT,
175	.retval = 0,
176},
177{
178	"masking, test out of bounds 12",
179	.insns = {
180	BPF_MOV64_IMM(BPF_REG_1, -1),
181	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
182	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
183	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
184	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
185	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
186	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
187	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
188	BPF_EXIT_INSN(),
189	},
190	.result = ACCEPT,
191	.retval = 0,
192},
193{
194	"masking, test in bounds 1",
195	.insns = {
196	BPF_MOV32_IMM(BPF_REG_1, 4),
197	BPF_MOV32_IMM(BPF_REG_2, 5 - 1),
198	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
199	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
200	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
201	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
202	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
203	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
204	BPF_EXIT_INSN(),
205	},
206	.result = ACCEPT,
207	.retval = 4,
208},
209{
210	"masking, test in bounds 2",
211	.insns = {
212	BPF_MOV32_IMM(BPF_REG_1, 0),
213	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
214	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
215	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
216	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
217	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
218	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
219	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
220	BPF_EXIT_INSN(),
221	},
222	.result = ACCEPT,
223	.retval = 0,
224},
225{
226	"masking, test in bounds 3",
227	.insns = {
228	BPF_MOV32_IMM(BPF_REG_1, 0xfffffffe),
229	BPF_MOV32_IMM(BPF_REG_2, 0xffffffff - 1),
230	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
231	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
232	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
233	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
234	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
235	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
236	BPF_EXIT_INSN(),
237	},
238	.result = ACCEPT,
239	.retval = 0xfffffffe,
240},
241{
242	"masking, test in bounds 4",
243	.insns = {
244	BPF_MOV32_IMM(BPF_REG_1, 0xabcde),
245	BPF_MOV32_IMM(BPF_REG_2, 0xabcdef - 1),
246	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
247	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
248	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
249	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
250	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
251	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
252	BPF_EXIT_INSN(),
253	},
254	.result = ACCEPT,
255	.retval = 0xabcde,
256},
257{
258	"masking, test in bounds 5",
259	.insns = {
260	BPF_MOV32_IMM(BPF_REG_1, 0),
261	BPF_MOV32_IMM(BPF_REG_2, 1 - 1),
262	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
263	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
264	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
265	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
266	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
267	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
268	BPF_EXIT_INSN(),
269	},
270	.result = ACCEPT,
271	.retval = 0,
272},
273{
274	"masking, test in bounds 6",
275	.insns = {
276	BPF_MOV32_IMM(BPF_REG_1, 46),
277	BPF_MOV32_IMM(BPF_REG_2, 47 - 1),
278	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_1),
279	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_1),
280	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
281	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
282	BPF_ALU64_REG(BPF_AND, BPF_REG_1, BPF_REG_2),
283	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
284	BPF_EXIT_INSN(),
285	},
286	.result = ACCEPT,
287	.retval = 46,
288},
289{
290	"masking, test in bounds 7",
291	.insns = {
292	BPF_MOV64_IMM(BPF_REG_3, -46),
293	BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1),
294	BPF_MOV32_IMM(BPF_REG_2, 47 - 1),
295	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3),
296	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3),
297	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
298	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
299	BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2),
300	BPF_MOV64_REG(BPF_REG_0, BPF_REG_3),
301	BPF_EXIT_INSN(),
302	},
303	.result = ACCEPT,
304	.retval = 46,
305},
306{
307	"masking, test in bounds 8",
308	.insns = {
309	BPF_MOV64_IMM(BPF_REG_3, -47),
310	BPF_ALU64_IMM(BPF_MUL, BPF_REG_3, -1),
311	BPF_MOV32_IMM(BPF_REG_2, 47 - 1),
312	BPF_ALU64_REG(BPF_SUB, BPF_REG_2, BPF_REG_3),
313	BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_3),
314	BPF_ALU64_IMM(BPF_NEG, BPF_REG_2, 0),
315	BPF_ALU64_IMM(BPF_ARSH, BPF_REG_2, 63),
316	BPF_ALU64_REG(BPF_AND, BPF_REG_3, BPF_REG_2),
317	BPF_MOV64_REG(BPF_REG_0, BPF_REG_3),
318	BPF_EXIT_INSN(),
319	},
320	.result = ACCEPT,
321	.retval = 0,
322},