CLONE_NEWIPC
case CLONE_NEWIPC:
case CLONE_NEWIPC:
if (flags & CLONE_NEWIPC)
struct ipc_namespace *: CLONE_NEWIPC, \
if (!(flags & CLONE_NEWIPC))
CLONE_NEWUTS|CLONE_NEWIPC|CLONE_NEWNET|
if (unshare_flags & (CLONE_NEWIPC|CLONE_SYSVSEM))
if (unshare_flags & CLONE_NEWIPC) {
case CLONE_NEWIPC:
if (likely(!(flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
if ((flags & (CLONE_NEWIPC | CLONE_SYSVSEM)) ==
(CLONE_NEWIPC | CLONE_SYSVSEM))
if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
if (!flags || (flags & ~(CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
if (flags & CLONE_NEWIPC)
if (flags & CLONE_NEWIPC) {
if (flags & CLONE_NEWIPC)
case CLONE_NEWIPC:
#ifndef CLONE_NEWIPC
ret = unshare(CLONE_NEWIPC);
unshare(CLONE_NEWIPC);
ret = unshare(CLONE_NEWIPC);
ret = setns(pidfd, CLONE_NEWUTS | CLONE_NEWIPC);
if (unshare(CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWNET | CLONE_NEWUSER) < 0) {
ret = setns(pidfd, CLONE_NEWUTS | CLONE_NEWIPC);
child_pid = create_child(&pidfd, CLONE_NEWUSER | CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWNET);
if (unshare(CLONE_NEWIPC) < 0)
if (self->nsfds[PIDFD_NS_IPC] >= 0 && unshare(CLONE_NEWIPC) < 0) {
if (self->nsfds[PIDFD_NS_IPC] >= 0 && unshare(CLONE_NEWIPC) < 0) {
[PIDFD_NS_IPC] = { "ipc", CLONE_NEWIPC, PIDFD_GET_IPC_NAMESPACE, },
if (setns(nsfd, CLONE_NEWIPC) == -1) {
if (unshare(CLONE_NEWIPC) == -1) {
if (unshare(CLONE_NEWIPC) == -1) {