diff options
author | Christophe Leroy <christophe.leroy@csgroup.eu> | 2024-03-08 06:38:08 +0100 |
---|---|---|
committer | Alexei Starovoitov <ast@kernel.org> | 2024-03-14 19:28:52 -0700 |
commit | e60adf513275c3a38e5cb67f7fd12387e43a3ff5 (patch) | |
tree | f154a2a436cb986c45b30f5090aca12218d43a2c /arch/mips | |
parent | 7d2cc63eca0c993c99d18893214abf8f85d566d8 (diff) | |
download | linux-stable-e60adf513275c3a38e5cb67f7fd12387e43a3ff5.tar.gz linux-stable-e60adf513275c3a38e5cb67f7fd12387e43a3ff5.tar.bz2 linux-stable-e60adf513275c3a38e5cb67f7fd12387e43a3ff5.zip |
bpf: Take return from set_memory_rox() into account with bpf_jit_binary_lock_ro()
set_memory_rox() can fail, leaving memory unprotected.
Check return and bail out when bpf_jit_binary_lock_ro() returns
an error.
Link: https://github.com/KSPP/linux/issues/7
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: linux-hardening@vger.kernel.org <linux-hardening@vger.kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Puranjay Mohan <puranjay12@gmail.com>
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com> # s390x
Acked-by: Tiezhu Yang <yangtiezhu@loongson.cn> # LoongArch
Reviewed-by: Johan Almbladh <johan.almbladh@anyfinetworks.com> # MIPS Part
Message-ID: <036b6393f23a2032ce75a1c92220b2afcb798d5d.1709850515.git.christophe.leroy@csgroup.eu>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/net/bpf_jit_comp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/mips/net/bpf_jit_comp.c b/arch/mips/net/bpf_jit_comp.c index a40d926b6513..e355dfca4400 100644 --- a/arch/mips/net/bpf_jit_comp.c +++ b/arch/mips/net/bpf_jit_comp.c @@ -1012,7 +1012,8 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog) bpf_prog_fill_jited_linfo(prog, &ctx.descriptors[1]); /* Set as read-only exec and flush instruction cache */ - bpf_jit_binary_lock_ro(header); + if (bpf_jit_binary_lock_ro(header)) + goto out_err; flush_icache_range((unsigned long)header, (unsigned long)&ctx.target[ctx.jit_index]); |