git: b6f04039d96c - stable/12 - procctl(2): add consistent shortcut P_ID:0 as curproc
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 14 Feb 2022 20:29:32 UTC
The branch stable/12 has been updated by emaste: URL: https://cgit.FreeBSD.org/src/commit/?id=b6f04039d96c24d37c87e5e8f84c13521f9b6b8e commit b6f04039d96c24d37c87e5e8f84c13521f9b6b8e Author: Konstantin Belousov <kib@FreeBSD.org> AuthorDate: 2021-10-15 19:01:42 +0000 Commit: Ed Maste <emaste@FreeBSD.org> CommitDate: 2022-02-14 20:26:47 +0000 procctl(2): add consistent shortcut P_ID:0 as curproc (cherry picked from commit f833ab9dd187328306fa1601330fbc8332392abe) (cherry picked from commit 2e69ba48b97dffa244a4d2d47382b6fbcf6e78f4) --- lib/libc/sys/procctl.2 | 2 ++ sys/kern/kern_procctl.c | 16 +++++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/lib/libc/sys/procctl.2 b/lib/libc/sys/procctl.2 index 80408b73d616..18d3273bfbd6 100644 --- a/lib/libc/sys/procctl.2 +++ b/lib/libc/sys/procctl.2 @@ -62,6 +62,8 @@ The following identifier types are supported: .It Dv P_PID Control the process with the process ID .Fa id . +.Fa id +zero is a shortcut for the calling process ID. .It Dv P_PGID Control processes belonging to the process group with the ID .Fa id . diff --git a/sys/kern/kern_procctl.c b/sys/kern/kern_procctl.c index c87f2bd060ca..b4bbfce9349c 100644 --- a/sys/kern/kern_procctl.c +++ b/sys/kern/kern_procctl.c @@ -740,12 +740,18 @@ kern_procctl(struct thread *td, idtype_t idtype, id_t id, int com, void *data) switch (idtype) { case P_PID: - p = pfind(id); - if (p == NULL) { - error = ESRCH; - break; + if (id == 0) { + p = td->td_proc; + error = 0; + PROC_LOCK(p); + } else { + p = pfind(id); + if (p == NULL) { + error = ESRCH; + break; + } + error = p_cansee(td, p); } - error = p_cansee(td, p); if (error == 0) error = kern_procctl_single(td, p, com, data); PROC_UNLOCK(p);