diff options
author | dyson <dyson@FreeBSD.org> | 1996-09-10 22:35:25 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-09-10 22:35:25 +0000 |
commit | 57b4b6ac986e3b189ea8e6ef81d4c508e92c1679 (patch) | |
tree | ed8cfea6bebcfb0b192cfb3629d20293b9782cb3 /sys/kern/sysv_shm.c | |
parent | d2fd439eb584334beacd2fb0f47d55a6b928a1cc (diff) | |
download | FreeBSD-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.c | 4 |
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; |