]> www.infradead.org Git - users/willy/xarray.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)
committerDaniel Borkmann <daniel@iogearbox.net>
Mon, 28 Jun 2021 13:11:43 +0000 (15:11 +0200)
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
arch/x86/net/bpf_jit_comp.c

index db1e83813db5297fa6571c2f48ad3afef704a178..e835164189f160bbbc0da247fed68a835d5f6944 100644 (file)
@@ -1281,7 +1281,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 */