Page MenuHomeFreeBSD

D60030.diff
No OneTemporary

D60030.diff

diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c
--- a/sys/kern/sysv_shm.c
+++ b/sys/kern/sysv_shm.c
@@ -1304,13 +1304,11 @@
struct prison *pr = obj;
struct prison *rpr;
- SYSVSHM_LOCK();
prison_lock(pr);
rpr = osd_jail_get(pr, shm_prison_slot);
prison_unlock(pr);
if (rpr == pr)
shm_prison_cleanup(pr);
- SYSVSHM_UNLOCK();
return (0);
}
@@ -1320,6 +1318,7 @@
struct shmid_kernel *shmseg;
int i;
+ SYSVSHM_LOCK();
/* Remove any segments that belong to this jail. */
for (i = 0; i < shmalloced; i++) {
shmseg = &shmsegs[i];
@@ -1328,6 +1327,7 @@
shm_remove(shmseg, i);
}
}
+ SYSVSHM_UNLOCK();
}
SYSCTL_JAIL_PARAM_SYS_NODE(sysvshm, CTLFLAG_RW, "SYSV shared memory");

File Metadata

Mime Type
text/plain
Expires
Sun, Sep 27, 4:48 AM (9 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
39682536
Default Alt Text
D60030.diff (720 B)

Event Timeline