cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ld_imm64.c (3127B)


      1{
      2	"test1 ld_imm64",
      3	.insns = {
      4	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
      5	BPF_LD_IMM64(BPF_REG_0, 0),
      6	BPF_LD_IMM64(BPF_REG_0, 0),
      7	BPF_LD_IMM64(BPF_REG_0, 1),
      8	BPF_LD_IMM64(BPF_REG_0, 1),
      9	BPF_MOV64_IMM(BPF_REG_0, 2),
     10	BPF_EXIT_INSN(),
     11	},
     12	.errstr = "invalid BPF_LD_IMM insn",
     13	.errstr_unpriv = "R1 pointer comparison",
     14	.result = REJECT,
     15},
     16{
     17	"test2 ld_imm64",
     18	.insns = {
     19	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
     20	BPF_LD_IMM64(BPF_REG_0, 0),
     21	BPF_LD_IMM64(BPF_REG_0, 0),
     22	BPF_LD_IMM64(BPF_REG_0, 1),
     23	BPF_LD_IMM64(BPF_REG_0, 1),
     24	BPF_EXIT_INSN(),
     25	},
     26	.errstr = "invalid BPF_LD_IMM insn",
     27	.errstr_unpriv = "R1 pointer comparison",
     28	.result = REJECT,
     29},
     30{
     31	"test3 ld_imm64",
     32	.insns = {
     33	BPF_JMP_IMM(BPF_JEQ, BPF_REG_1, 0, 1),
     34	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
     35	BPF_LD_IMM64(BPF_REG_0, 0),
     36	BPF_LD_IMM64(BPF_REG_0, 0),
     37	BPF_LD_IMM64(BPF_REG_0, 1),
     38	BPF_LD_IMM64(BPF_REG_0, 1),
     39	BPF_EXIT_INSN(),
     40	},
     41	.errstr = "invalid bpf_ld_imm64 insn",
     42	.result = REJECT,
     43},
     44{
     45	"test4 ld_imm64",
     46	.insns = {
     47	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
     48	BPF_EXIT_INSN(),
     49	},
     50	.errstr = "invalid bpf_ld_imm64 insn",
     51	.result = REJECT,
     52},
     53{
     54	"test6 ld_imm64",
     55	.insns = {
     56	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 0),
     57	BPF_RAW_INSN(0, 0, 0, 0, 0),
     58	BPF_EXIT_INSN(),
     59	},
     60	.result = ACCEPT,
     61},
     62{
     63	"test7 ld_imm64",
     64	.insns = {
     65	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
     66	BPF_RAW_INSN(0, 0, 0, 0, 1),
     67	BPF_EXIT_INSN(),
     68	},
     69	.result = ACCEPT,
     70	.retval = 1,
     71},
     72{
     73	"test8 ld_imm64",
     74	.insns = {
     75	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 1, 1),
     76	BPF_RAW_INSN(0, 0, 0, 0, 1),
     77	BPF_EXIT_INSN(),
     78	},
     79	.errstr = "uses reserved fields",
     80	.result = REJECT,
     81},
     82{
     83	"test9 ld_imm64",
     84	.insns = {
     85	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
     86	BPF_RAW_INSN(0, 0, 0, 1, 1),
     87	BPF_EXIT_INSN(),
     88	},
     89	.errstr = "invalid bpf_ld_imm64 insn",
     90	.result = REJECT,
     91},
     92{
     93	"test10 ld_imm64",
     94	.insns = {
     95	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
     96	BPF_RAW_INSN(0, BPF_REG_1, 0, 0, 1),
     97	BPF_EXIT_INSN(),
     98	},
     99	.errstr = "invalid bpf_ld_imm64 insn",
    100	.result = REJECT,
    101},
    102{
    103	"test11 ld_imm64",
    104	.insns = {
    105	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, 0, 0, 1),
    106	BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1),
    107	BPF_EXIT_INSN(),
    108	},
    109	.errstr = "invalid bpf_ld_imm64 insn",
    110	.result = REJECT,
    111},
    112{
    113	"test12 ld_imm64",
    114	.insns = {
    115	BPF_MOV64_IMM(BPF_REG_1, 0),
    116	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
    117	BPF_RAW_INSN(0, 0, 0, 0, 0),
    118	BPF_EXIT_INSN(),
    119	},
    120	.errstr = "not pointing to valid bpf_map",
    121	.result = REJECT,
    122},
    123{
    124	"test13 ld_imm64",
    125	.insns = {
    126	BPF_MOV64_IMM(BPF_REG_1, 0),
    127	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, 0, BPF_REG_1, 0, 1),
    128	BPF_RAW_INSN(0, 0, BPF_REG_1, 0, 1),
    129	BPF_EXIT_INSN(),
    130	},
    131	.errstr = "invalid bpf_ld_imm64 insn",
    132	.result = REJECT,
    133},
    134{
    135	"test14 ld_imm64: reject 2nd imm != 0",
    136	.insns = {
    137	BPF_MOV64_IMM(BPF_REG_0, 0),
    138	BPF_RAW_INSN(BPF_LD | BPF_IMM | BPF_DW, BPF_REG_1,
    139		     BPF_PSEUDO_MAP_FD, 0, 0),
    140	BPF_RAW_INSN(0, 0, 0, 0, 0xfefefe),
    141	BPF_EXIT_INSN(),
    142	},
    143	.fixup_map_hash_48b = { 1 },
    144	.errstr = "unrecognized bpf_ld_imm64 insn",
    145	.result = REJECT,
    146},