aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2026-07-22 09:36:17 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2026-07-23 23:50:13 +0000
commit8f320c2bc473a775ea9a55d17fa61f729e593867 (patch)
treea9399aeb0f203f2199a9798ac4ae178059691998
parent86182d89020159697391375cf475893d4cd859c0 (diff)
-rw-r--r--sys/kern/kern_prot.c12
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_