summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_fork.c
diff options
context:
space:
mode:
authorguenther <guenther@openbsd.org>2010-10-31 00:03:44 +0000
committerguenther <guenther@openbsd.org>2010-10-31 00:03:44 +0000
commitf065ab1d79aab3a0f39f2a846f60ac4cc6b10d30 (patch)
tree8367b89dfff3f6b2e71a2a7e5a3f17989c5899b8 /sys/kern/kern_fork.c
parentPrint socket structure internals when netstat -P pcbaddr is called (diff)
downloadwireguard-openbsd-f065ab1d79aab3a0f39f2a846f60ac4cc6b10d30.tar.xz
wireguard-openbsd-f065ab1d79aab3a0f39f2a846f60ac4cc6b10d30.zip
The return of rfork(RFTHREAD) must be consistent with getthrid().
Fixes rthread breakage observed by Vladimir Kirillov.
Diffstat (limited to 'sys/kern/kern_fork.c')
-rw-r--r--sys/kern/kern_fork.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index b92ea4a2cdb..d3f98721754 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_fork.c,v 1.122 2010/07/26 01:56:27 guenther Exp $ */
+/* $OpenBSD: kern_fork.c,v 1.123 2010/10/31 00:03:44 guenther Exp $ */
/* $NetBSD: kern_fork.c,v 1.29 1996/02/09 18:59:34 christos Exp $ */
/*
@@ -480,7 +480,8 @@ fork1(struct proc *p1, int exitsig, int flags, void *stack, size_t stacksize,
* marking us as parent via retval[1].
*/
if (retval != NULL) {
- retval[0] = p2->p_pid;
+ retval[0] = p2->p_pid +
+ (flags & FORK_THREAD ? THREAD_PID_OFFSET : 0);
retval[1] = 0;
}
return (0);