Page MenuHomeFreeBSD

D3603.id9293.diff
No OneTemporary

D3603.id9293.diff

Index: head/lib/libc/sys/shmctl.2
===================================================================
--- head/lib/libc/sys/shmctl.2
+++ head/lib/libc/sys/shmctl.2
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd July 17, 1995
+.Dd October 10, 2015
.Dt SHMCTL 2
.Os
.Sh NAME
@@ -72,15 +72,18 @@
.It Dv IPC_RMID
Removes the segment from the system.
The removal will not take
-effect until all processes having attached the segment have exited;
-however, once the IPC_RMID operation has taken place, no further
-processes will be allowed to attach the segment.
+effect until all processes having attached the segment have exited.
For the operation
to succeed, the calling process's effective uid must match
.Fa shm_perm.uid
or
.Fa shm_perm.cuid ,
or the process must have superuser privileges.
+If the
+.Va kern.ipc.shm_allow_removed
+.Xr sysctl 3
+variable is set to 0, once the IPC_RMID operation has taken place,
+no further processes will be allowed to attach the segment.
.\" .It Dv SHM_LOCK
.\" Locks the segment in memory. The calling process must have
.\" superuser privileges. Not implemented in FreeBSD.
Index: head/sys/kern/sysv_shm.c
===================================================================
--- head/sys/kern/sysv_shm.c
+++ head/sys/kern/sysv_shm.c
@@ -162,7 +162,7 @@
};
static int shm_use_phys;
-static int shm_allow_removed;
+static int shm_allow_removed = 1;
SYSCTL_ULONG(_kern_ipc, OID_AUTO, shmmax, CTLFLAG_RWTUN, &shminfo.shmmax, 0,
"Maximum shared memory segment size");

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 16, 2:55 PM (8 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29722621
Default Alt Text
D3603.id9293.diff (1 KB)

Event Timeline