Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "DIV32 by 0, zero check 1",
0003     .insns = {
0004     BPF_MOV32_IMM(BPF_REG_0, 42),
0005     BPF_MOV32_IMM(BPF_REG_1, 0),
0006     BPF_MOV32_IMM(BPF_REG_2, 1),
0007     BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1),
0008     BPF_EXIT_INSN(),
0009     },
0010     .result = ACCEPT,
0011     .retval = 42,
0012 },
0013 {
0014     "DIV32 by 0, zero check 2",
0015     .insns = {
0016     BPF_MOV32_IMM(BPF_REG_0, 42),
0017     BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL),
0018     BPF_MOV32_IMM(BPF_REG_2, 1),
0019     BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1),
0020     BPF_EXIT_INSN(),
0021     },
0022     .result = ACCEPT,
0023     .retval = 42,
0024 },
0025 {
0026     "DIV64 by 0, zero check",
0027     .insns = {
0028     BPF_MOV32_IMM(BPF_REG_0, 42),
0029     BPF_MOV32_IMM(BPF_REG_1, 0),
0030     BPF_MOV32_IMM(BPF_REG_2, 1),
0031     BPF_ALU64_REG(BPF_DIV, BPF_REG_2, BPF_REG_1),
0032     BPF_EXIT_INSN(),
0033     },
0034     .result = ACCEPT,
0035     .retval = 42,
0036 },
0037 {
0038     "MOD32 by 0, zero check 1",
0039     .insns = {
0040     BPF_MOV32_IMM(BPF_REG_0, 42),
0041     BPF_MOV32_IMM(BPF_REG_1, 0),
0042     BPF_MOV32_IMM(BPF_REG_2, 1),
0043     BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1),
0044     BPF_EXIT_INSN(),
0045     },
0046     .result = ACCEPT,
0047     .retval = 42,
0048 },
0049 {
0050     "MOD32 by 0, zero check 2",
0051     .insns = {
0052     BPF_MOV32_IMM(BPF_REG_0, 42),
0053     BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL),
0054     BPF_MOV32_IMM(BPF_REG_2, 1),
0055     BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1),
0056     BPF_EXIT_INSN(),
0057     },
0058     .result = ACCEPT,
0059     .retval = 42,
0060 },
0061 {
0062     "MOD64 by 0, zero check",
0063     .insns = {
0064     BPF_MOV32_IMM(BPF_REG_0, 42),
0065     BPF_MOV32_IMM(BPF_REG_1, 0),
0066     BPF_MOV32_IMM(BPF_REG_2, 1),
0067     BPF_ALU64_REG(BPF_MOD, BPF_REG_2, BPF_REG_1),
0068     BPF_EXIT_INSN(),
0069     },
0070     .result = ACCEPT,
0071     .retval = 42,
0072 },
0073 {
0074     "DIV32 by 0, zero check ok, cls",
0075     .insns = {
0076     BPF_MOV32_IMM(BPF_REG_0, 42),
0077     BPF_MOV32_IMM(BPF_REG_1, 2),
0078     BPF_MOV32_IMM(BPF_REG_2, 16),
0079     BPF_ALU32_REG(BPF_DIV, BPF_REG_2, BPF_REG_1),
0080     BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
0081     BPF_EXIT_INSN(),
0082     },
0083     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0084     .result = ACCEPT,
0085     .retval = 8,
0086 },
0087 {
0088     "DIV32 by 0, zero check 1, cls",
0089     .insns = {
0090     BPF_MOV32_IMM(BPF_REG_1, 0),
0091     BPF_MOV32_IMM(BPF_REG_0, 1),
0092     BPF_ALU32_REG(BPF_DIV, BPF_REG_0, BPF_REG_1),
0093     BPF_EXIT_INSN(),
0094     },
0095     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0096     .result = ACCEPT,
0097     .retval = 0,
0098 },
0099 {
0100     "DIV32 by 0, zero check 2, cls",
0101     .insns = {
0102     BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL),
0103     BPF_MOV32_IMM(BPF_REG_0, 1),
0104     BPF_ALU32_REG(BPF_DIV, BPF_REG_0, BPF_REG_1),
0105     BPF_EXIT_INSN(),
0106     },
0107     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0108     .result = ACCEPT,
0109     .retval = 0,
0110 },
0111 {
0112     "DIV64 by 0, zero check, cls",
0113     .insns = {
0114     BPF_MOV32_IMM(BPF_REG_1, 0),
0115     BPF_MOV32_IMM(BPF_REG_0, 1),
0116     BPF_ALU64_REG(BPF_DIV, BPF_REG_0, BPF_REG_1),
0117     BPF_EXIT_INSN(),
0118     },
0119     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0120     .result = ACCEPT,
0121     .retval = 0,
0122 },
0123 {
0124     "MOD32 by 0, zero check ok, cls",
0125     .insns = {
0126     BPF_MOV32_IMM(BPF_REG_0, 42),
0127     BPF_MOV32_IMM(BPF_REG_1, 3),
0128     BPF_MOV32_IMM(BPF_REG_2, 5),
0129     BPF_ALU32_REG(BPF_MOD, BPF_REG_2, BPF_REG_1),
0130     BPF_MOV64_REG(BPF_REG_0, BPF_REG_2),
0131     BPF_EXIT_INSN(),
0132     },
0133     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0134     .result = ACCEPT,
0135     .retval = 2,
0136 },
0137 {
0138     "MOD32 by 0, zero check 1, cls",
0139     .insns = {
0140     BPF_MOV32_IMM(BPF_REG_1, 0),
0141     BPF_MOV32_IMM(BPF_REG_0, 1),
0142     BPF_ALU32_REG(BPF_MOD, BPF_REG_0, BPF_REG_1),
0143     BPF_EXIT_INSN(),
0144     },
0145     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0146     .result = ACCEPT,
0147     .retval = 1,
0148 },
0149 {
0150     "MOD32 by 0, zero check 2, cls",
0151     .insns = {
0152     BPF_LD_IMM64(BPF_REG_1, 0xffffffff00000000LL),
0153     BPF_MOV32_IMM(BPF_REG_0, 1),
0154     BPF_ALU32_REG(BPF_MOD, BPF_REG_0, BPF_REG_1),
0155     BPF_EXIT_INSN(),
0156     },
0157     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0158     .result = ACCEPT,
0159     .retval = 1,
0160 },
0161 {
0162     "MOD64 by 0, zero check 1, cls",
0163     .insns = {
0164     BPF_MOV32_IMM(BPF_REG_1, 0),
0165     BPF_MOV32_IMM(BPF_REG_0, 2),
0166     BPF_ALU64_REG(BPF_MOD, BPF_REG_0, BPF_REG_1),
0167     BPF_EXIT_INSN(),
0168     },
0169     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0170     .result = ACCEPT,
0171     .retval = 2,
0172 },
0173 {
0174     "MOD64 by 0, zero check 2, cls",
0175     .insns = {
0176     BPF_MOV32_IMM(BPF_REG_1, 0),
0177     BPF_MOV32_IMM(BPF_REG_0, -1),
0178     BPF_ALU64_REG(BPF_MOD, BPF_REG_0, BPF_REG_1),
0179     BPF_EXIT_INSN(),
0180     },
0181     .prog_type = BPF_PROG_TYPE_SCHED_CLS,
0182     .result = ACCEPT,
0183     .retval = -1,
0184 },