Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
  1{
  2	"dead code: start",
  3	.insns = {
  4	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
  5	BPF_LDX_MEM(BPF_B, BPF_REG_8, BPF_REG_9, 0),
  6	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
  7	BPF_MOV64_IMM(BPF_REG_0, 7),
  8	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, -4),
  9	BPF_EXIT_INSN(),
 10	},
 11	.errstr_unpriv = "R9 !read_ok",
 12	.result_unpriv = REJECT,
 13	.result = ACCEPT,
 14	.retval = 7,
 15},
 16{
 17	"dead code: mid 1",
 18	.insns = {
 19	BPF_MOV64_IMM(BPF_REG_0, 7),
 20	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1),
 21	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 0),
 22	BPF_EXIT_INSN(),
 23	},
 24	.result = ACCEPT,
 25	.retval = 7,
 26},
 27{
 28	"dead code: mid 2",
 29	.insns = {
 30	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_get_prandom_u32),
 31	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 4),
 32	BPF_JMP_IMM(BPF_JSET, BPF_REG_0, 1, 1),
 33	BPF_JMP_IMM(BPF_JA, 0, 0, 2),
 34	BPF_MOV64_IMM(BPF_REG_0, 7),
 35	BPF_EXIT_INSN(),
 36	BPF_MOV64_IMM(BPF_REG_0, 1),
 37	BPF_EXIT_INSN(),
 38	},
 39	.result = ACCEPT,
 40	.retval = 1,
 41},
 42{
 43	"dead code: end 1",
 44	.insns = {
 45	BPF_MOV64_IMM(BPF_REG_0, 7),
 46	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
 47	BPF_EXIT_INSN(),
 48	BPF_EXIT_INSN(),
 49	},
 50	.result = ACCEPT,
 51	.retval = 7,
 52},
 53{
 54	"dead code: end 2",
 55	.insns = {
 56	BPF_MOV64_IMM(BPF_REG_0, 7),
 57	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
 58	BPF_EXIT_INSN(),
 59	BPF_MOV64_IMM(BPF_REG_0, 12),
 60	BPF_EXIT_INSN(),
 61	},
 62	.result = ACCEPT,
 63	.retval = 7,
 64},
 65{
 66	"dead code: end 3",
 67	.insns = {
 68	BPF_MOV64_IMM(BPF_REG_0, 7),
 69	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
 70	BPF_EXIT_INSN(),
 71	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 10, 1),
 72	BPF_JMP_IMM(BPF_JA, 0, 0, 1),
 73	BPF_MOV64_IMM(BPF_REG_0, 12),
 74	BPF_JMP_IMM(BPF_JA, 0, 0, -5),
 75	},
 76	.result = ACCEPT,
 77	.retval = 7,
 78},
 79{
 80	"dead code: tail of main + func",
 81	.insns = {
 82	BPF_MOV64_IMM(BPF_REG_0, 7),
 83	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
 84	BPF_EXIT_INSN(),
 85	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
 86	BPF_EXIT_INSN(),
 87	BPF_MOV64_IMM(BPF_REG_0, 12),
 88	BPF_EXIT_INSN(),
 89	},
 90	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
 91	.result_unpriv = REJECT,
 92	.result = ACCEPT,
 93	.retval = 7,
 94},
 95{
 96	"dead code: tail of main + two functions",
 97	.insns = {
 98	BPF_MOV64_IMM(BPF_REG_0, 7),
 99	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 8, 1),
100	BPF_EXIT_INSN(),
101	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
102	BPF_EXIT_INSN(),
103	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
104	BPF_EXIT_INSN(),
105	BPF_MOV64_IMM(BPF_REG_0, 12),
106	BPF_EXIT_INSN(),
107	},
108	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
109	.result_unpriv = REJECT,
110	.result = ACCEPT,
111	.retval = 7,
112},
113{
114	"dead code: function in the middle and mid of another func",
115	.insns = {
116	BPF_MOV64_IMM(BPF_REG_1, 7),
117	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 3),
118	BPF_EXIT_INSN(),
119	BPF_MOV64_IMM(BPF_REG_0, 12),
120	BPF_EXIT_INSN(),
121	BPF_MOV64_IMM(BPF_REG_0, 7),
122	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 7, 1),
123	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, -5),
124	BPF_EXIT_INSN(),
125	},
126	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
127	.result_unpriv = REJECT,
128	.result = ACCEPT,
129	.retval = 7,
130},
131{
132	"dead code: middle of main before call",
133	.insns = {
134	BPF_MOV64_IMM(BPF_REG_1, 2),
135	BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 2, 1),
136	BPF_MOV64_IMM(BPF_REG_1, 5),
137	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
138	BPF_EXIT_INSN(),
139	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
140	BPF_EXIT_INSN(),
141	},
142	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
143	.result_unpriv = REJECT,
144	.result = ACCEPT,
145	.retval = 2,
146},
147{
148	"dead code: start of a function",
149	.insns = {
150	BPF_MOV64_IMM(BPF_REG_1, 2),
151	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 1, 0, 1),
152	BPF_EXIT_INSN(),
153	BPF_JMP_IMM(BPF_JA, 0, 0, 0),
154	BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
155	BPF_EXIT_INSN(),
156	},
157	.errstr_unpriv = "loading/calling other bpf or kernel functions are allowed for",
158	.result_unpriv = REJECT,
159	.result = ACCEPT,
160	.retval = 2,
161},
162{
163	"dead code: zero extension",
164	.insns = {
165	BPF_MOV64_IMM(BPF_REG_0, 0),
166	BPF_STX_MEM(BPF_W, BPF_REG_10, BPF_REG_0, -4),
167	BPF_JMP_IMM(BPF_JGE, BPF_REG_0, 0, 1),
168	BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_10, -4),
169	BPF_EXIT_INSN(),
170	},
171	.result = ACCEPT,
172	.retval = 0,
173},