Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "constant register |= constant should keep constant type",
0003     .insns = {
0004     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0005     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -48),
0006     BPF_MOV64_IMM(BPF_REG_2, 34),
0007     BPF_ALU64_IMM(BPF_OR, BPF_REG_2, 13),
0008     BPF_MOV64_IMM(BPF_REG_3, 0),
0009     BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
0010     BPF_EXIT_INSN(),
0011     },
0012     .result = ACCEPT,
0013     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0014 },
0015 {
0016     "constant register |= constant should not bypass stack boundary checks",
0017     .insns = {
0018     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0019     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -48),
0020     BPF_MOV64_IMM(BPF_REG_2, 34),
0021     BPF_ALU64_IMM(BPF_OR, BPF_REG_2, 24),
0022     BPF_MOV64_IMM(BPF_REG_3, 0),
0023     BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
0024     BPF_EXIT_INSN(),
0025     },
0026     .errstr = "invalid indirect access to stack R1 off=-48 size=58",
0027     .result = REJECT,
0028     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0029 },
0030 {
0031     "constant register |= constant register should keep constant type",
0032     .insns = {
0033     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0034     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -48),
0035     BPF_MOV64_IMM(BPF_REG_2, 34),
0036     BPF_MOV64_IMM(BPF_REG_4, 13),
0037     BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_4),
0038     BPF_MOV64_IMM(BPF_REG_3, 0),
0039     BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
0040     BPF_EXIT_INSN(),
0041     },
0042     .result = ACCEPT,
0043     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0044 },
0045 {
0046     "constant register |= constant register should not bypass stack boundary checks",
0047     .insns = {
0048     BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
0049     BPF_ALU64_IMM(BPF_ADD, BPF_REG_1, -48),
0050     BPF_MOV64_IMM(BPF_REG_2, 34),
0051     BPF_MOV64_IMM(BPF_REG_4, 24),
0052     BPF_ALU64_REG(BPF_OR, BPF_REG_2, BPF_REG_4),
0053     BPF_MOV64_IMM(BPF_REG_3, 0),
0054     BPF_EMIT_CALL(BPF_FUNC_probe_read_kernel),
0055     BPF_EXIT_INSN(),
0056     },
0057     .errstr = "invalid indirect access to stack R1 off=-48 size=58",
0058     .result = REJECT,
0059     .prog_type = BPF_PROG_TYPE_TRACEPOINT,
0060 },