Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "unreachable",
0003     .insns = {
0004     BPF_EXIT_INSN(),
0005     BPF_EXIT_INSN(),
0006     },
0007     .errstr = "unreachable",
0008     .result = REJECT,
0009 },
0010 {
0011     "unreachable2",
0012     .insns = {
0013     BPF_JMP_IMM(BPF_JA, 0, 0, 1),
0014     BPF_JMP_IMM(BPF_JA, 0, 0, 0),
0015     BPF_EXIT_INSN(),
0016     },
0017     .errstr = "unreachable",
0018     .result = REJECT,
0019 },
0020 {
0021     "out of range jump",
0022     .insns = {
0023     BPF_JMP_IMM(BPF_JA, 0, 0, 1),
0024     BPF_EXIT_INSN(),
0025     },
0026     .errstr = "jump out of range",
0027     .result = REJECT,
0028 },
0029 {
0030     "out of range jump2",
0031     .insns = {
0032     BPF_JMP_IMM(BPF_JA, 0, 0, -2),
0033     BPF_EXIT_INSN(),
0034     },
0035     .errstr = "jump out of range",
0036     .result = REJECT,
0037 },
0038 {
0039     "loop (back-edge)",
0040     .insns = {
0041     BPF_JMP_IMM(BPF_JA, 0, 0, -1),
0042     BPF_EXIT_INSN(),
0043     },
0044     .errstr = "unreachable insn 1",
0045     .errstr_unpriv = "back-edge",
0046     .result = REJECT,
0047 },
0048 {
0049     "loop2 (back-edge)",
0050     .insns = {
0051     BPF_MOV64_REG(BPF_REG_1, BPF_REG_0),
0052     BPF_MOV64_REG(BPF_REG_2, BPF_REG_0),
0053     BPF_MOV64_REG(BPF_REG_3, BPF_REG_0),
0054     BPF_JMP_IMM(BPF_JA, 0, 0, -4),
0055     BPF_EXIT_INSN(),
0056     },
0057     .errstr = "unreachable insn 4",
0058     .errstr_unpriv = "back-edge",
0059     .result = REJECT,
0060 },
0061 {
0062     "conditional loop",
0063     .insns = {
0064     BPF_MOV64_REG(BPF_REG_0, BPF_REG_1),
0065     BPF_MOV64_REG(BPF_REG_2, BPF_REG_0),
0066     BPF_MOV64_REG(BPF_REG_3, BPF_REG_0),
0067     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, -3),
0068     BPF_EXIT_INSN(),
0069     },
0070     .errstr = "infinite loop detected",
0071     .errstr_unpriv = "back-edge",
0072     .result = REJECT,
0073 },