aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/sysv_shm.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
index 637beb12c41b..c52f79dd422b 100644
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -726,12 +726,14 @@ shmget_existing(td, uap, mode, segnum)
}
if ((uap->shmflg & (IPC_CREAT | IPC_EXCL)) == (IPC_CREAT | IPC_EXCL))
return (EEXIST);
- error = ipcperm(td, &shmseg->u.shm_perm, mode);
#ifdef MAC
error = mac_check_sysv_shmget(td->td_ucred, shmseg, uap->shmflg);
- if (error != 0)
+ if (error != 0) {
MPRINTF(("mac_check_sysv_shmget returned %d\n", error));
+ return (error);
+ }
#endif
+ error = ipcperm(td, &shmseg->u.shm_perm, mode);
if (error)
return (error);
if (uap->size && uap->size > shmseg->u.shm_segsz)