diff options
| author | Jiri Olsa <jolsa@kernel.org> | 2024-11-08 14:45:32 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-12-05 14:01:56 +0100 |
| commit | 36ede57f0c51f123e8a44c8952fc9702f636828c (patch) | |
| tree | 2c30a91d82d6a98bf0e436917f211ca72ce77173 /kernel/bpf | |
| parent | fa6813b1109cf765d15fbf309d31295146e2dc7a (diff) | |
| download | linux-36ede57f0c51f123e8a44c8952fc9702f636828c.tar.gz linux-36ede57f0c51f123e8a44c8952fc9702f636828c.tar.bz2 linux-36ede57f0c51f123e8a44c8952fc9702f636828c.zip | |
bpf: Allow return values 0 and 1 for kprobe session
[ Upstream commit 17c4b65a24938c6dd79496cce5df15f70d9c253c ]
The kprobe session program can return only 0 or 1,
instruct verifier to check for that.
Fixes: 535a3692ba72 ("bpf: Add support for kprobe session attach")
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241108134544.480660-2-jolsa@kernel.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel/bpf')
| -rw-r--r-- | kernel/bpf/verifier.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 71a1877aac68..91317857ea3e 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -15988,6 +15988,15 @@ static int check_return_code(struct bpf_verifier_env *env, int regno, const char return -ENOTSUPP; } break; + case BPF_PROG_TYPE_KPROBE: + switch (env->prog->expected_attach_type) { + case BPF_TRACE_KPROBE_SESSION: + range = retval_range(0, 1); + break; + default: + return 0; + } + break; case BPF_PROG_TYPE_SK_LOOKUP: range = retval_range(SK_DROP, SK_PASS); break; |
