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},