summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_shm.c
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-09-10 22:35:25 +0000
committerdyson <dyson@FreeBSD.org>1996-09-10 22:35:25 +0000
commit57b4b6ac986e3b189ea8e6ef81d4c508e92c1679 (patch)
treeed8cfea6bebcfb0b192cfb3629d20293b9782cb3 /sys/kern/sysv_shm.c
parentd2fd439eb584334beacd2fb0f47d55a6b928a1cc (diff)
downloadFreeBSD-src-57b4b6ac986e3b189ea8e6ef81d4c508e92c1679.zip
FreeBSD-src-57b4b6ac986e3b189ea8e6ef81d4c508e92c1679.tar.gz
Fix a problem with child inheritance of sysv shm. Problem brought
to my attention by Brad Lineberger <bil@mpgn.com> and Rob Miracle.
Diffstat (limited to 'sys/kern/sysv_shm.c')
-rw-r--r--sys/kern/sysv_shm.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index 1845418..04ef70b 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -54,6 +54,7 @@
#include <vm/vm_kern.h>
#include <vm/vm_extern.h>
#include <vm/vm_pager.h>
+#include <vm/vm_inherit.h>
#ifndef _SYS_SYSPROTO_H_
struct shmat_args;
@@ -275,6 +276,9 @@ shmat(p, uap, retval)
if (rv != KERN_SUCCESS) {
return ENOMEM;
}
+ vm_map_inherit(&p->p_vmspace->vm_map,
+ attach_va, attach_va + size, VM_INHERIT_SHARE);
+
shmmap_s->va = attach_va;
shmmap_s->shmid = uap->shmid;
shmseg->shm_lpid = p->p_pid;
OpenPOWER on IntegriCloud