diff options
| author | Christian Brauner <brauner@kernel.org> | 2025-08-19 13:38:26 +0200 |
|---|---|---|
| committer | Christian Brauner <brauner@kernel.org> | 2025-08-19 13:38:26 +0200 |
| commit | da664c6db895f70c2be8c3dd371c273b6f8b920f (patch) | |
| tree | dc6bd438ecf7475e3b9ffee62406512ab13e464c /kernel/pid.c | |
| parent | Linux 6.17-rc1 (diff) | |
| parent | pid: change task_state() to use task_ppid_nr_ns() (diff) | |
| download | linux-da664c6db895f70c2be8c3dd371c273b6f8b920f.tar.gz linux-da664c6db895f70c2be8c3dd371c273b6f8b920f.zip | |
Merge patch series "Improve pid_nr_ns()"
In various places pid_nr_ns() can be called with a NULL pointer.
Fix those up and improve pid_nr_ns() callers.
Link: https://lore.kernel.org/20250802022123.3536934-1-gxxa03070307@gmail.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'kernel/pid.c')
| -rw-r--r-- | kernel/pid.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/pid.c b/kernel/pid.c index c45a28c16cd2..f62a7df2f04c 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -491,7 +491,7 @@ pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns) struct upid *upid; pid_t nr = 0; - if (pid && ns->level <= pid->level) { + if (pid && ns && ns->level <= pid->level) { upid = &pid->numbers[ns->level]; if (upid->ns == ns) nr = upid->nr; @@ -514,7 +514,8 @@ pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type, rcu_read_lock(); if (!ns) ns = task_active_pid_ns(current); - nr = pid_nr_ns(rcu_dereference(*task_pid_ptr(task, type)), ns); + if (ns) + nr = pid_nr_ns(rcu_dereference(*task_pid_ptr(task, type)), ns); rcu_read_unlock(); return nr; |
