CLONE_NEWPID
if (ns->ns_type != CLONE_NEWPID)
case CLONE_NEWPID:
case CLONE_NEWPID:
if (ns->ns_type != CLONE_NEWPID)
struct pid_namespace *: CLONE_NEWPID, \
if (flags & CLONE_NEWPID)
if ((clone_flags & (CLONE_NEWUSER | CLONE_NEWPID)) ||
CLONE_NEWUSER|CLONE_NEWPID|CLONE_NEWCGROUP|
case CLONE_NEWPID:
CLONE_NEWPID | CLONE_NEWNET |
CLONE_NEWNET | CLONE_NEWPID | CLONE_NEWCGROUP |
CLONE_NEWPID | CLONE_NEWCGROUP)))
if (flags & CLONE_NEWPID)
if (flags & CLONE_NEWPID) {
if (flags & CLONE_NEWPID) {
case CLONE_NEWPID:
if (!(flags & CLONE_NEWPID))
CLONE_NEWPID | SIGCHLD, arg);
CLONE_NEWPID | SIGCHLD, (void *)prog_name);
.flags = CLONE_NEWPID,
.flags = CLONE_NEWPID,
.flags = CLONE_NEWPID,
.flags = CLONE_NEWPID,
.flags = CLONE_NEWPID,
set_tid, 1, CLONE_NEWPID, -EINVAL, 0, 0);
set_tid, 1, CLONE_NEWPID, 0, 0, 0);
set_tid, 1, CLONE_NEWPID, -EINVAL, 0, 0);
set_tid, 1, CLONE_NEWPID, -EINVAL, 0, 0);
set_tid, 2, CLONE_NEWPID, 0, pid, 0);
if (unshare(CLONE_NEWPID) == -1)
set_tid, 3, CLONE_NEWPID, -EINVAL, 0, 0);
set_tid, 4, CLONE_NEWPID, -EINVAL, 0, 0);
set_tid, 3, CLONE_NEWPID, 0, 42, true);
pid = clone(child, ca.stack_ptr, CLONE_NEWUSER | CLONE_NEWPID | SIGCHLD, NULL);
ret = unshare(CLONE_NEWNS|CLONE_NEWUSER|CLONE_NEWPID);
int pid = spawn_thread(CLONE_NEWPID, sysctl_simple_child, NULL);
pid = spawn_thread(CLONE_NEWPID, sysctl_simple_child, NULL);
pid = spawn_thread(CLONE_NEWPID, sysctl_nested, test_sysctl_sysctl1);
pid = spawn_thread(CLONE_NEWPID, sysctl_nested,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested, test_sysctl_sysctl2);
pid = spawn_thread(CLONE_NEWPID, sysctl_nested,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested_wait,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested_wait,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested_wait,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested_wait,
pid = spawn_thread(CLONE_NEWPID, sysctl_nested_wait,
int pid = spawn_thread(CLONE_NEWPID, sysctl_nested_child, NULL);
#ifndef CLONE_NEWPID
ret = unshare(CLONE_NEWPID);
ret = unshare(CLONE_NEWPID);
ret = unshare(CLONE_NEWPID);
pid = do_clone(pid_max_nested_inner, NULL, CLONE_NEWPID | CLONE_NEWNS);
pid = do_clone(pid_max_nested_limit_inner, NULL, CLONE_NEWPID | CLONE_NEWNS);
pid = do_clone(pid_max_cb, NULL, CLONE_NEWPID | CLONE_NEWNS);
pid = do_clone(pid_max_nested_limit_outer, NULL, CLONE_NEWPID | CLONE_NEWNS);
pid = do_clone(pid_max_nested_outer, NULL, CLONE_NEWPID | CLONE_NEWNS);
EXPECT_EQ(0, unshare(CLONE_NEWPID));
static int flags = CLONE_PIDFD | CLONE_NEWPID | CLONE_NEWNS | SIGCHLD;
ASSERT_EQ(setns(self->child_pidfd2, CLONE_NEWUSER | CLONE_NEWPID), 0);
self->child_pid2 = create_child(&self->child_pidfd2, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid3 = create_child(&self->child_pidfd3, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid4 = create_child(&self->child_pidfd4, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid3 = create_child(&self->child_pidfd3, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid = create_child(&self->child_pidfd, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid1 = create_child(&self->child_pidfd1, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid1 = create_child(&self->child_pidfd1, CLONE_NEWPID);
self->child_pid2 = create_child(&self->child_pidfd2, CLONE_NEWUSER | CLONE_NEWPID);
self->child_pid2 = create_child(&self->child_pidfd2, CLONE_NEWPID);
[PIDFD_NS_PID] = { "pid", CLONE_NEWPID, PIDFD_GET_PID_NAMESPACE, },
if (info->flag == CLONE_NEWPID)
if (info->flag == CLONE_NEWPID)
if (info->flag == CLONE_NEWPID)
if (info->flag == CLONE_NEWPID)
ret = unshare(CLONE_NEWPID);
self->child_pid = create_child(&self->child_pidfd, CLONE_NEWUSER | CLONE_NEWPID);
if (unshare(CLONE_NEWPID) == -1) {
ASSERT_SUCCESS(unshare(CLONE_NEWPID));
ASSERT_SUCCESS(setns(self->host_pidns, CLONE_NEWPID));
ASSERT_EQ(unshare(CLONE_NEWUSER | CLONE_NEWPID), 0) {
ASSERT_EQ(unshare(CLONE_NEWPID), 0) {
ASSERT_EQ(unshare(CLONE_NEWPID), 0) {