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

basic_stack.c (1439B)


      1{
      2	"stack out of bounds",
      3	.insns = {
      4	BPF_ST_MEM(BPF_DW, BPF_REG_10, 8, 0),
      5	BPF_EXIT_INSN(),
      6	},
      7	.errstr = "invalid write to stack",
      8	.result = REJECT,
      9},
     10{
     11	"uninitialized stack1",
     12	.insns = {
     13	BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
     14	BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
     15	BPF_LD_MAP_FD(BPF_REG_1, 0),
     16	BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem),
     17	BPF_EXIT_INSN(),
     18	},
     19	.fixup_map_hash_8b = { 2 },
     20	.errstr = "invalid indirect read from stack",
     21	.result = REJECT,
     22},
     23{
     24	"uninitialized stack2",
     25	.insns = {
     26	BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
     27	BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_2, -8),
     28	BPF_EXIT_INSN(),
     29	},
     30	.errstr = "invalid read from stack",
     31	.result = REJECT,
     32},
     33{
     34	"invalid fp arithmetic",
     35	/* If this gets ever changed, make sure JITs can deal with it. */
     36	.insns = {
     37	BPF_MOV64_IMM(BPF_REG_0, 0),
     38	BPF_MOV64_REG(BPF_REG_1, BPF_REG_10),
     39	BPF_ALU64_IMM(BPF_SUB, BPF_REG_1, 8),
     40	BPF_STX_MEM(BPF_DW, BPF_REG_1, BPF_REG_0, 0),
     41	BPF_EXIT_INSN(),
     42	},
     43	.errstr = "R1 subtraction from stack pointer",
     44	.result = REJECT,
     45},
     46{
     47	"non-invalid fp arithmetic",
     48	.insns = {
     49	BPF_MOV64_IMM(BPF_REG_0, 0),
     50	BPF_STX_MEM(BPF_DW, BPF_REG_10, BPF_REG_0, -8),
     51	BPF_EXIT_INSN(),
     52	},
     53	.result = ACCEPT,
     54},
     55{
     56	"misaligned read from stack",
     57	.insns = {
     58	BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
     59	BPF_LDX_MEM(BPF_DW, BPF_REG_0, BPF_REG_2, -4),
     60	BPF_EXIT_INSN(),
     61	},
     62	.errstr = "misaligned stack access",
     63	.result = REJECT,
     64},