]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
bpf: Fix bpf jit kallsym access
authorAlexei Starovoitov <ast@kernel.org>
Wed, 30 Oct 2019 23:30:19 +0000 (16:30 -0700)
committerDaniel Borkmann <daniel@iogearbox.net>
Thu, 31 Oct 2019 01:02:29 +0000 (02:02 +0100)
Jiri reported crash when JIT is on, but net.core.bpf_jit_kallsyms is off.
bpf_prog_kallsyms_find() was skipping addr->bpf_prog resolution
logic in oops and stack traces. That's incorrect.
It should only skip addr->name resolution for 'cat /proc/kallsyms'.
That's what bpf_jit_kallsyms and bpf_jit_harden protect.

Fixes: 3dec541b2e63 ("bpf: Add support for BTF pointers to x86 JIT")
Reported-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20191030233019.1187404-1-ast@kernel.org
kernel/bpf/core.c

index 673f5d40a93e319a9fed5c2d7817e298ec0654ca..8d3fbc86ca5e2e0e691588d639323455aa03b402 100644 (file)
@@ -668,9 +668,6 @@ static struct bpf_prog *bpf_prog_kallsyms_find(unsigned long addr)
 {
        struct latch_tree_node *n;
 
-       if (!bpf_jit_kallsyms_enabled())
-               return NULL;
-
        n = latch_tree_find((void *)addr, &bpf_tree, &bpf_tree_ops);
        return n ?
               container_of(n, struct bpf_prog_aux, ksym_tnode)->prog :