Back to home page

OSCL-LXR

 
 

    


0001 {
0002     "test1 ld_imm64",
0003     .insns = {
0004     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
0005     BPF_LD_IMM64(BPF_REG_0, 0),
0006     BPF_LD_IMM64(BPF_REG_0, 0),
0007     BPF_LD_IMM64(BPF_REG_0, 1),
0008     BPF_LD_IMM64(BPF_REG_0, 1),
0009     BPF_MOV64_IMM(BPF_REG_0, 2),
0010     BPF_EXIT_INSN(),
0011     },
0012     .errstr = "invalid BPF_LD_IMM insn",
0013     .errstr_unpriv = "R1 pointer comparison",
0014     .result = REJECT,
0015 },
0016 {
0017     "test2 ld_imm64",
0018     .insns = {
0019     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
0020     BPF_LD_IMM64(BPF_REG_0, 0),
0021     BPF_LD_IMM64(BPF_REG_0, 0),
0022     BPF_LD_IMM64(BPF_REG_0, 1),
0023     BPF_LD_IMM64(BPF_REG_0, 1),
0024     BPF_EXIT_INSN(),
0025     },
0026     .errstr = "invalid BPF_LD_IMM insn",
0027     .errstr_unpriv = "R1 pointer comparison",
0028     .result = REJECT,
0029 },
0030 {
0031     "test3 ld_imm64",
0032     .insns = {
0033     BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
0034     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
0035     BPF_LD_IMM64(BPF_REG_0, 0),
0036     BPF_LD_IMM64(BPF_REG_0, 0),
0037     BPF_LD_IMM64(BPF_REG_0, 1),
0038     BPF_LD_IMM64(BPF_REG_0, 1),
0039     BPF_EXIT_INSN(),
0040     },
0041     .errstr = "invalid bpf_ld_imm64 insn",
0042     .result = REJECT,
0043 },
0044 {
0045     "test4 ld_imm64",
0046     .insns = {
0047     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
0048     BPF_EXIT_INSN(),
0049     },
0050     .errstr = "invalid bpf_ld_imm64 insn",
0051     .result = REJECT,
0052 },
0053 {
0054     "test6 ld_imm64",
0055     .insns = {
0056     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
0057     BPF_RAW_INSN(0, 0, 0, 0, 0),
0058     BPF_EXIT_INSN(),
0059     },
0060     .result = ACCEPT,
0061 },
0062 {
0063     "test7 ld_imm64",
0064     .insns = {
0065     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
0066     BPF_RAW_INSN(0, 0, 0, 0, 1),
0067     BPF_EXIT_INSN(),
0068     },
0069     .result = ACCEPT,
0070     .retval = 1,
0071 },
0072 {
0073     "test8 ld_imm64",
0074     .insns = {
0075     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 1, 1),
0076     BPF_RAW_INSN(0, 0, 0, 0, 1),
0077     BPF_EXIT_INSN(),
0078     },
0079     .errstr = "uses reserved fields",
0080     .result = REJECT,
0081 },
0082 {
0083     "test9 ld_imm64",
0084     .insns = {
0085     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
0086     BPF_RAW_INSN(0, 0, 0, 1, 1),
0087     BPF_EXIT_INSN(),
0088     },
0089     .errstr = "invalid bpf_ld_imm64 insn",
0090     .result = REJECT,
0091 },
0092 {
0093     "test10 ld_imm64",
0094     .insns = {
0095     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
0096     BPF_RAW_INSN(0, BPF_REG_1, 0, 0, 1),
0097     BPF_EXIT_INSN(),
0098     },
0099     .errstr = "invalid bpf_ld_imm64 insn",
0100     .result = REJECT,
0101 },
0102 {
0103     "test11 ld_imm64",
0104     .insns = {
0105     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
0106     BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1),
0107     BPF_EXIT_INSN(),
0108     },
0109     .errstr = "invalid bpf_ld_imm64 insn",
0110     .result = REJECT,
0111 },
0112 {
0113     "test12 ld_imm64",
0114     .insns = {
0115     BPF_MOV64_IMM(BPF_REG_1, 0),
0116     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
0117     BPF_RAW_INSN(0, 0, 0, 0, 0),
0118     BPF_EXIT_INSN(),
0119     },
0120     .errstr = "not pointing to valid bpf_map",
0121     .result = REJECT,
0122 },
0123 {
0124     "test13 ld_imm64",
0125     .insns = {
0126     BPF_MOV64_IMM(BPF_REG_1, 0),
0127     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
0128     BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1),
0129     BPF_EXIT_INSN(),
0130     },
0131     .errstr = "invalid bpf_ld_imm64 insn",
0132     .result = REJECT,
0133 },
0134 {
0135     "test14 ld_imm64: reject 2nd imm != 0",
0136     .insns = {
0137     BPF_MOV64_IMM(BPF_REG_0, 0),
0138     BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_1,
0139              BPF_PSEUDO_MAP_FD, 0, 0),
0140     BPF_RAW_INSN(0, 0, 0, 0, 0xfefefe),
0141     BPF_EXIT_INSN(),
0142     },
0143     .fixup_map_hash_48b = { 1 },
0144     .errstr = "unrecognized bpf_ld_imm64 insn",
0145     .result = REJECT,
0146 },