summaryrefslogtreecommitdiffstats
path: root/sys/kern/sysv_shm.c
diff options
context:
space:
mode:
authortrasz <trasz@FreeBSD.org>2011-04-06 16:59:54 +0000
committertrasz <trasz@FreeBSD.org>2011-04-06 16:59:54 +0000
commitd6f4192036c8ed6ef963cdb7793404025756ab06 (patch)
tree1bb412523ffd3b85f320c30f0d19d8cd22bd8c98 /sys/kern/sysv_shm.c
parent440cd5face8a8098f95d7e1a290efcde8e22adcd (diff)
downloadFreeBSD-src-d6f4192036c8ed6ef963cdb7793404025756ab06.zip
FreeBSD-src-d6f4192036c8ed6ef963cdb7793404025756ab06.tar.gz
Add ucred pointer to the SysV-related memory structures. This is required
for racct. Note that after this commit, ipcs(1) needs to be rebuilt. Otherwise, it will fail with "ipcs: sysctlbyname: kern.ipc.msqids: Cannot allocate memory". Sponsored by: The FreeBSD Foundation Reviewed by: kib (earlier version)
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 5ea9e5d..645184c 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -246,6 +246,8 @@ shm_deallocate_segment(shmseg)
#ifdef MAC
mac_sysvshm_cleanup(shmseg);
#endif
+ crfree(shmseg->cred);
+ shmseg->cred = NULL;
}
static int
@@ -694,6 +696,8 @@ shmget_allocate_segment(td, uap, mode)
shmseg->u.shm_perm.cgid = shmseg->u.shm_perm.gid = cred->cr_gid;
shmseg->u.shm_perm.mode = (shmseg->u.shm_perm.mode & SHMSEG_WANTED) |
(mode & ACCESSPERMS) | SHMSEG_ALLOCATED;
+ crhold(cred);
+ shmseg->cred = cred;
shmseg->u.shm_segsz = uap->size;
shmseg->u.shm_cpid = td->td_proc->p_pid;
shmseg->u.shm_lpid = shmseg->u.shm_nattch = 0;
OpenPOWER on IntegriCloud