map_ret_val.c (1927B)
1{ 2 "invalid map_fd for function call", 3 .insns = { 4 BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0), 5 BPF_ALU64_REG(BPF_MOV, BPF_REG_2, BPF_REG_10), 6 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 7 BPF_LD_MAP_FD(BPF_REG_1, 0), 8 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_delete_elem), 9 BPF_EXIT_INSN(), 10 }, 11 .errstr = "fd 0 is not pointing to valid bpf_map", 12 .result = REJECT, 13}, 14{ 15 "don't check return value before access", 16 .insns = { 17 BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0), 18 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 19 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 20 BPF_LD_MAP_FD(BPF_REG_1, 0), 21 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem), 22 BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 0), 23 BPF_EXIT_INSN(), 24 }, 25 .fixup_map_hash_8b = { 3 }, 26 .errstr = "R0 invalid mem access 'map_value_or_null'", 27 .result = REJECT, 28}, 29{ 30 "access memory with incorrect alignment", 31 .insns = { 32 BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0), 33 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 34 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 35 BPF_LD_MAP_FD(BPF_REG_1, 0), 36 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem), 37 BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 1), 38 BPF_ST_MEM(BPF_DW, BPF_REG_0, 4, 0), 39 BPF_EXIT_INSN(), 40 }, 41 .fixup_map_hash_8b = { 3 }, 42 .errstr = "misaligned value access", 43 .result = REJECT, 44 .flags = F_LOAD_WITH_STRICT_ALIGNMENT, 45}, 46{ 47 "sometimes access memory with incorrect alignment", 48 .insns = { 49 BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0), 50 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10), 51 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8), 52 BPF_LD_MAP_FD(BPF_REG_1, 0), 53 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0, BPF_FUNC_map_lookup_elem), 54 BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 2), 55 BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 0), 56 BPF_EXIT_INSN(), 57 BPF_ST_MEM(BPF_DW, BPF_REG_0, 0, 1), 58 BPF_EXIT_INSN(), 59 }, 60 .fixup_map_hash_8b = { 3 }, 61 .errstr = "R0 invalid mem access", 62 .errstr_unpriv = "R0 leaks addr", 63 .result = REJECT, 64 .flags = F_LOAD_WITH_STRICT_ALIGNMENT, 65},