summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_fork.c
diff options
context:
space:
mode:
authormvs <mvs@openbsd.org>2021-01-17 15:28:21 +0000
committermvs <mvs@openbsd.org>2021-01-17 15:28:21 +0000
commit9e1c4ad6e2bbf8b384cf2d699b693050eff32d3b (patch)
tree83ae8b202540a876be73ec6b311ad96f16e1ae1f /sys/kern/kern_fork.c
parentDon't leak host address. Found with clang static analyzer. (diff)
downloadwireguard-openbsd-9e1c4ad6e2bbf8b384cf2d699b693050eff32d3b.tar.xz
wireguard-openbsd-9e1c4ad6e2bbf8b384cf2d699b693050eff32d3b.zip
Cache parent's pid as `ps_ppid' and use it instead of `ps_pptr->ps_pid'.
This allows us to unlock getppid(2). ok mpi@
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r--sys/kern/kern_fork.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index 34e5b45bcbc..a8d275907de 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_fork.c,v 1.230 2020/12/07 16:55:28 mpi Exp $ */
+/* $OpenBSD: kern_fork.c,v 1.231 2021/01/17 15:28:21 mvs Exp $ */
/* $NetBSD: kern_fork.c,v 1.29 1996/02/09 18:59:34 christos Exp $ */
/*
@@ -231,6 +231,7 @@ process_new(struct proc *p, struct process *parent, int flags)
/* post-copy fixups */
pr->ps_pptr = parent;
+ pr->ps_ppid = parent->ps_pid;
/* bump references to the text vnode (for sysctl) */
pr->ps_textvp = parent->ps_textvp;