Patch "bpf: Force kprobe multi expected_attach_type for kprobe_multi link" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    bpf: Force kprobe multi expected_attach_type for kprobe_multi link

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     bpf-force-kprobe-multi-expected_attach_type-for-kpro.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 80c6e2aafdb6fd420074c30c9107cda9317d9c39
Author: Jiri Olsa <jolsa@xxxxxxxxxx>
Date:   Sun Jun 18 15:14:14 2023 +0200

    bpf: Force kprobe multi expected_attach_type for kprobe_multi link
    
    [ Upstream commit db8eae6bc5c702d8e3ab2d0c6bb5976c131576eb ]
    
    We currently allow to create perf link for program with
    expected_attach_type == BPF_TRACE_KPROBE_MULTI.
    
    This will cause crash when we call helpers like get_attach_cookie or
    get_func_ip in such program, because it will call the kprobe_multi's
    version (current->bpf_ctx context setup) of those helpers while it
    expects perf_link's current->bpf_ctx context setup.
    
    Making sure that we use BPF_TRACE_KPROBE_MULTI expected_attach_type
    only for programs attaching through kprobe_multi link.
    
    Fixes: ca74823c6e16 ("bpf: Add cookie support to programs attached with kprobe multi link")
    Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
    Signed-off-by: Andrii Nakryiko <andrii@xxxxxxxxxx>
    Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/20230618131414.75649-1-jolsa@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 6c61dba26f4d9..8633ec4f92df3 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -3383,6 +3383,11 @@ static int bpf_prog_attach_check_attach_type(const struct bpf_prog *prog,
 		return prog->enforce_expected_attach_type &&
 			prog->expected_attach_type != attach_type ?
 			-EINVAL : 0;
+	case BPF_PROG_TYPE_KPROBE:
+		if (prog->expected_attach_type == BPF_TRACE_KPROBE_MULTI &&
+		    attach_type != BPF_TRACE_KPROBE_MULTI)
+			return -EINVAL;
+		return 0;
 	default:
 		return 0;
 	}



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux