]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
LoongArch: BPF: Make error handling robust in arch_prepare_bpf_trampoline()
authorHengqi Chen <hengqi.chen@gmail.com>
Thu, 2 Oct 2025 14:39:53 +0000 (22:39 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Oct 2025 10:04:19 +0000 (12:04 +0200)
commit de2c0b7788648850b68b75f7cc8698b2749dd31e upstream.

Bail out instead of trying to perform a bpf_arch_text_copy() if
__arch_prepare_bpf_trampoline() failed.

Cc: stable@vger.kernel.org
Tested-by: Vincent Li <vincent.mc.li@gmail.com>
Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/loongarch/net/bpf_jit.c

index 8d534a0dad87c8b844d2b940f8ffdee6de4b6b2b..a81a5d28a8213341d1223ee031de1e188464257d 100644 (file)
@@ -1756,7 +1756,10 @@ int arch_prepare_bpf_trampoline(struct bpf_tramp_image *im, void *ro_image,
 
        jit_fill_hole(image, (unsigned int)(ro_image_end - ro_image));
        ret = __arch_prepare_bpf_trampoline(&ctx, im, m, tlinks, func_addr, flags);
-       if (ret > 0 && validate_code(&ctx) < 0) {
+       if (ret < 0)
+               goto out;
+
+       if (validate_code(&ctx) < 0) {
                ret = -EINVAL;
                goto out;
        }