diff options
author | Martin KaFai Lau <kafai@fb.com> | 2019-11-06 17:46:40 -0800 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2019-11-06 21:52:52 -0800 |
commit | 85d31dd07002315c0d1816543fdc392c8cc6b73a (patch) | |
tree | 432a2b8f89df9f7b999103aedc905a889664d267 | |
parent | ed578021210e14f15a654c825fba6a700c9a39a7 (diff) | |
download | blackbird-op-linux-85d31dd07002315c0d1816543fdc392c8cc6b73a.tar.gz blackbird-op-linux-85d31dd07002315c0d1816543fdc392c8cc6b73a.zip |
bpf: Account for insn->off when doing bpf_probe_read_kernel
In the bpf interpreter mode, bpf_probe_read_kernel is used to read
from PTR_TO_BTF_ID's kernel object. It currently missed considering
the insn->off. This patch fixes it.
Fixes: 2a02759ef5f8 ("bpf: Add support for BTF pointers to interpreter")
Signed-off-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20191107014640.384083-1-kafai@fb.com
-rw-r--r-- | kernel/bpf/core.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 97e37d82a1cc..c1fde0303280 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -1569,7 +1569,7 @@ out: #undef LDST #define LDX_PROBE(SIZEOP, SIZE) \ LDX_PROBE_MEM_##SIZEOP: \ - bpf_probe_read_kernel(&DST, SIZE, (const void *)(long) SRC); \ + bpf_probe_read_kernel(&DST, SIZE, (const void *)(long) (SRC + insn->off)); \ CONT; LDX_PROBE(B, 1) LDX_PROBE(H, 2) |