]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bpf, x86: Fix extable offset calculation
authorRavi Bangoria <ravi.bangoria@linux.ibm.com>
Tue, 22 Jun 2021 11:00:26 +0000 (16:30 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 15:00:06 +0000 (17:00 +0200)
[ Upstream commit 328aac5ecd119ede3633f7d17969b1ff34ccc784 ]

Commit 4c5de127598e1 ("bpf: Emit explicit NULL pointer checks for PROBE_LDX
instructions.") is emitting a couple of instructions before the actual load.
Consider those additional instructions while calculating extable offset.

Fixes: 4c5de127598e1 ("bpf: Emit explicit NULL pointer checks for PROBE_LDX instructions.")
Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20210622110026.1157847-1-ravi.bangoria@linux.ibm.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/net/bpf_jit_comp.c

index 7f1b3a862e1418835b2285110c8ced2e1a74e9d1..1fb0c37e48cb10788feb142725baa72698b11626 100644 (file)
@@ -1297,7 +1297,7 @@ st:                       if (is_imm8(insn->off))
                        emit_ldx(&prog, BPF_SIZE(insn->code), dst_reg, src_reg, insn->off);
                        if (BPF_MODE(insn->code) == BPF_PROBE_MEM) {
                                struct exception_table_entry *ex;
-                               u8 *_insn = image + proglen;
+                               u8 *_insn = image + proglen + (start_of_ldx - temp);
                                s64 delta;
 
                                /* populate jmp_offset for JMP above */