diff options
| author | Konstantin Belousov <kib@FreeBSD.org> | 2026-07-22 09:36:17 +0000 |
|---|---|---|
| committer | Konstantin Belousov <kib@FreeBSD.org> | 2026-07-23 23:50:13 +0000 |
| commit | 8f320c2bc473a775ea9a55d17fa61f729e593867 (patch) | |
| tree | a9399aeb0f203f2199a9798ac4ae178059691998 | |
| parent | 86182d89020159697391375cf475893d4cd859c0 (diff) | |
| -rw-r--r-- | sys/kern/kern_prot.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c index a223a7720844..5aa7fcf7c653 100644 --- a/sys/kern/kern_prot.c +++ b/sys/kern/kern_prot.c @@ -196,7 +196,7 @@ sys_getpgid(struct thread *td, struct getpgid_args *uap) p = td->td_proc; PROC_LOCK(p); } else { - p = pfind(uap->pid); + p = pfind_any(uap->pid); if (p == NULL) return (ESRCH); error = p_cansee(td, p); @@ -231,11 +231,12 @@ kern_getsid(struct thread *td, pid_t pid) struct proc *p; int error; + error = 0; if (pid == 0) { p = td->td_proc; PROC_LOCK(p); } else { - p = pfind(pid); + p = pfind_any(pid); if (p == NULL) return (ESRCH); error = p_cansee(td, p); @@ -244,9 +245,12 @@ kern_getsid(struct thread *td, pid_t pid) return (error); } } - td->td_retval[0] = p->p_session->s_sid; + if (p->p_session != NULL) + td->td_retval[0] = p->p_session->s_sid; + else + error = EINVAL; PROC_UNLOCK(p); - return (0); + return (error); } #ifndef _SYS_SYSPROTO_H_ |
