Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / tools / testing / selftests / bpf / verifier / uninit.c
1 {
2         "read uninitialized register",
3         .insns = {
4         BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
5         BPF_EXIT_INSN(),
6         },
7         .errstr = "R2 !read_ok",
8         .result = REJECT,
9 },
10 {
11         "read invalid register",
12         .insns = {
13         BPF_MOV64_REG(BPF_REG_0, -1),
14         BPF_EXIT_INSN(),
15         },
16         .errstr = "R15 is invalid",
17         .result = REJECT,
18 },
19 {
20         "program doesn't init R0 before exit",
21         .insns = {
22         BPF_ALU64_REG(BPF_MOV, BPF_REG_2, BPF_REG_1),
23         BPF_EXIT_INSN(),
24         },
25         .errstr = "R0 !read_ok",
26         .result = REJECT,
27 },
28 {
29         "program doesn't init R0 before exit in all branches",
30         .insns = {
31         BPF_JMP_IMM(BPF_JGE, BPF_REG_1, 0, 2),
32         BPF_MOV64_IMM(BPF_REG_0, 1),
33         BPF_ALU64_IMM(BPF_ADD, BPF_REG_0, 2),
34         BPF_EXIT_INSN(),
35         },
36         .errstr = "R0 !read_ok",
37         .errstr_unpriv = "R1 pointer comparison",
38         .result = REJECT,
39 },