1 { 2 "unreachable", 3 .insns = { 4 BPF_EXIT_INSN(), 5 BPF_EXIT_INSN(), 6 }, 7 .errstr = "unreachable", 8 .result = REJECT, 9 }, 10 { 11 "unreachable2", 12 .insns = { 13 BPF_JMP_IMM(BPF_JA, 0, 0, 1), 14 BPF_JMP_IMM(BPF_JA, 0, 0, 0), 15 BPF_EXIT_INSN(), 16 }, 17 .errstr = "unreachable", 18 .result = REJECT, 19 }, 20 { 21 "out of range jump", 22 .insns = { 23 BPF_JMP_IMM(BPF_JA, 0, 0, 1), 24 BPF_EXIT_INSN(), 25 }, 26 .errstr = "jump out of range", 27 .result = REJECT, 28 }, 29 { 30 "out of range jump2", 31 .insns = { 32 BPF_JMP_IMM(BPF_JA, 0, 0, -2), 33 BPF_EXIT_INSN(), 34 }, 35 .errstr = "jump out of range", 36 .result = REJECT, 37 }, 38 { 39 "loop (back-edge)", 40 .insns = { 41 BPF_JMP_IMM(BPF_JA, 0, 0, -1), 42 BPF_EXIT_INSN(), 43 }, 44 .errstr = "unreachable insn 1", 45 .errstr_unpriv = "back-edge", 46 .result = REJECT, 47 }, 48 { 49 "loop2 (back-edge)", 50 .insns = { 51 BPF_MOV64_REG(BPF_REG_1, BPF_REG_0), 52 BPF_MOV64_REG(BPF_REG_2, BPF_REG_0), 53 BPF_MOV64_REG(BPF_REG_3, BPF_REG_0), 54 BPF_JMP_IMM(BPF_JA, 0, 0, -4), 55 BPF_EXIT_INSN(), 56 }, 57 .errstr = "unreachable insn 4", 58 .errstr_unpriv = "back-edge", 59 .result = REJECT, 60 }, 61 { 62 "conditional loop", 63 .insns = { 64 BPF_MOV64_REG(BPF_REG_0, BPF_REG_1), 65 BPF_MOV64_REG(BPF_REG_2, BPF_REG_0), 66 BPF_MOV64_REG(BPF_REG_3, BPF_REG_0), 67 BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, -3), 68 BPF_EXIT_INSN(), 69 }, 70 .errstr = "infinite loop detected", 71 .errstr_unpriv = "back-edge", 72 .result = REJECT, 73 }, 74