Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "direct stack access with 32-bit wraparound. test1",
0003     .insns = {
0004     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0005     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x7fffffff),
0006     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x7fffffff),
0007     BPF_MOV32_IMM(BPF_REG_0, 0),
0008     BPF_STX_MEM(BPF_B, BPF_REG_1, BPF_REG_0, 0),
0009     BPF_EXIT_INSN(),
0010     },
0011     .errstr = "fp pointer and 2147483647",
0012     .result = REJECT
0013 },
0014 {
0015     "direct stack access with 32-bit wraparound. test2",
0016     .insns = {
0017     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0018     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x3fffffff),
0019     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x3fffffff),
0020     BPF_MOV32_IMM(BPF_REG_0, 0),
0021     BPF_STX_MEM(BPF_B, BPF_REG_1, BPF_REG_0, 0),
0022     BPF_EXIT_INSN(),
0023     },
0024     .errstr = "fp pointer and 1073741823",
0025     .result = REJECT
0026 },
0027 {
0028     "direct stack access with 32-bit wraparound. test3",
0029     .insns = {
0030     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0031     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x1fffffff),
0032     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, 0x1fffffff),
0033     BPF_MOV32_IMM(BPF_REG_0, 0),
0034     BPF_STX_MEM(BPF_B, BPF_REG_1, BPF_REG_0, 0),
0035     BPF_EXIT_INSN(),
0036     },
0037     .errstr = "fp pointer offset 1073741822",
0038     .errstr_unpriv = "R1 stack pointer arithmetic goes out of range",
0039     .result = REJECT
0040 },