diff options
| author | Anay Wadhera <awadhera@berkeley.edu> | 2021-05-20 21:57:48 -0700 |
|---|---|---|
| committer | Michael Bestas <mkbestas@lineageos.org> | 2022-04-19 00:49:46 +0300 |
| commit | 341aa44f157c579dbec48fb3b186442db0c196cb (patch) | |
| tree | c10e96359ac6116df0748bc95cab6ee918e48e6c /kernel | |
| parent | 2c63f6f8099103a7529f831bbabd7b1073c9121f (diff) | |
Revert "bpf: don't let ldimm64 leak map addresses on unprivileged"
This reverts commit 49630dd2e10a3b2fee0cec19feb63f08453b876f.
Signed-off-by: Chatur27 <jasonbright2709@gmail.com>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/verifier.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index eb759f5008b8..70dc6dcf8649 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -313,8 +313,7 @@ static const char *const bpf_jmp_string[16] = { [BPF_EXIT >> 4] = "exit", }; -static void print_bpf_insn(const struct verifier_env *env, - const struct bpf_insn *insn) +static void print_bpf_insn(struct bpf_insn *insn) { u8 class = BPF_CLASS(insn->code); @@ -378,19 +377,9 @@ static void print_bpf_insn(const struct verifier_env *env, insn->code, bpf_ldst_string[BPF_SIZE(insn->code) >> 3], insn->src_reg, insn->imm); - } else if (BPF_MODE(insn->code) == BPF_IMM && - BPF_SIZE(insn->code) == BPF_DW) { - /* At this point, we already made sure that the second - * part of the ldimm64 insn is accessible. - */ - u64 imm = ((u64)(insn + 1)->imm << 32) | (u32)insn->imm; - bool map_ptr = insn->src_reg == BPF_PSEUDO_MAP_FD; - - if (map_ptr && !env->allow_ptr_leaks) - imm = 0; - - verbose("(%02x) r%d = 0x%llx\n", insn->code, - insn->dst_reg, (unsigned long long)imm); + } else if (BPF_MODE(insn->code) == BPF_IMM) { + verbose("(%02x) r%d = 0x%x\n", + insn->code, insn->dst_reg, insn->imm); } else { verbose("BUG_ld_%02x\n", insn->code); return; @@ -1775,7 +1764,7 @@ static int do_check(struct verifier_env *env) if (log_level) { verbose("%d: ", insn_idx); - print_bpf_insn(env, insn); + print_bpf_insn(insn); } if (class == BPF_ALU || class == BPF_ALU64) { |
