powerpc/bpf: Write protect JIT code
authorJordan Niethe <jniethe5@gmail.com>
Wed, 9 Jun 2021 01:34:28 +0000 (11:34 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 21 Jun 2021 11:13:21 +0000 (21:13 +1000)
Add the necessary call to bpf_jit_binary_lock_ro() to remove write and
add exec permissions to the JIT image after it has finished being
written.

Without CONFIG_STRICT_MODULE_RWX the image will be writable and
executable until the call to bpf_jit_binary_lock_ro().

Signed-off-by: Jordan Niethe <jniethe5@gmail.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20210609013431.9805-7-jniethe5@gmail.com
arch/powerpc/net/bpf_jit_comp.c

index 6c8c268e4fe84d450ae96332999a1c40045d5fed..53aefee3fe70be6526699687ad7136e9e69b0c38 100644 (file)
@@ -237,6 +237,7 @@ skip_codegen_passes:
        fp->jited_len = alloclen;
 
        bpf_flush_icache(bpf_hdr, (u8 *)bpf_hdr + (bpf_hdr->pages * PAGE_SIZE));
+       bpf_jit_binary_lock_ro(bpf_hdr);
        if (!fp->is_func || extra_pass) {
                bpf_prog_fill_jited_linfo(fp, addrs);
 out_addrs: