diff options
| author | Jordan Rome <linux@jordanrome.com> | 2024-10-16 14:00:47 -0700 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2024-11-01 01:58:25 +0100 |
| commit | bb0f943675a9cf1d6b13bd94a13b63a7063a6d36 (patch) | |
| tree | 1d3b5a1f250e19b688a0946fbad2d93014c1f296 /kernel | |
| parent | 4ed32cc0939b64e3d7b48c8c0d63ea038775f304 (diff) | |
| download | linux-bb0f943675a9cf1d6b13bd94a13b63a7063a6d36.tar.gz linux-bb0f943675a9cf1d6b13bd94a13b63a7063a6d36.tar.bz2 linux-bb0f943675a9cf1d6b13bd94a13b63a7063a6d36.zip | |
bpf: Fix iter/task tid filtering
[ Upstream commit 9495a5b731fcaf580448a3438d63601c88367661 ]
In userspace, you can add a tid filter by setting
the "task.tid" field for "bpf_iter_link_info".
However, `get_pid_task` when called for the
`BPF_TASK_ITER_TID` type should have been using
`PIDTYPE_PID` (tid) instead of `PIDTYPE_TGID` (pid).
Fixes: f0d74c4da1f0 ("bpf: Parameterize task iterators.")
Signed-off-by: Jordan Rome <linux@jordanrome.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20241016210048.1213935-1-linux@jordanrome.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/task_iter.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/bpf/task_iter.c b/kernel/bpf/task_iter.c index c4ab9d6cdbe9..f7ef58090c7d 100644 --- a/kernel/bpf/task_iter.c +++ b/kernel/bpf/task_iter.c @@ -119,7 +119,7 @@ static struct task_struct *task_seq_get_next(struct bpf_iter_seq_task_common *co rcu_read_lock(); pid = find_pid_ns(common->pid, common->ns); if (pid) { - task = get_pid_task(pid, PIDTYPE_TGID); + task = get_pid_task(pid, PIDTYPE_PID); *tid = common->pid; } rcu_read_unlock(); |
