Re: [PATCH 1/3] fix setsid() for sub-namespace /sbin/init

From: Eric W. Biederman
Date: Mon Nov 26 2007 - 14:17:40 EST


Oleg Nesterov <oleg@xxxxxxxxxx> writes:

> sys_setsid() still deals with pid_t's from the global namespace. This means
> that the "session > 1" check can't help for sub-namespace init, setsid() can't
> succeed because copy_process(CLONE_NEWPID) populates PIDTYPE_PGID/SID links.

We can do even better. We can remove the misguided code from
copy_process(CLONE_NEWPID) that populates the PIDTYPE_PGID/SID links
and generally does set setsid by hand, and the code from kernel_init
that call set_special_pid(), allowing us to remove the special case
entirely.

The set_special_pid() in kernel_init() and the special case check
is actually a work around for the fact that earlier we could not
use 0 in the pid hash table. Now that we can use init_struct_pid
directly we don't need the special case at all.

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/