>> jail_remove(2) includes a loop that sends SIGKILL to all processes
>> in a jail, but skips processes in PRS_NEW state. Thus it is possible
>> the a process in mid-fork(2) during jail removal can survive the jail
>> being removed.
> какая-то шутка понятная только единственному ее разработчику. prs_new , А глянуть в заголовочный файл (sys/proc.h) не позволяет обет комментатора опеннета "никогда не пытаться узнать матчасть" ?
/*
* Process structure.
*/
struct proc {
LIST_ENTRY(proc) p_list; /* (d) List of all processes. */
TAILQ_HEAD(, thread) p_threads; /* (c) all threads. */
struct mtx p_slock; /* process spin lock */
struct ucred *p_ucred; /* (c) Process owner's identity. */
struct filedesc *p_fd; /* (b) Open files. */
struct filedesc_to_leader *p_fdtol; /* (b) Tracking node */
struct pstats *p_stats; /* (b) Accounting/statistics (CPU). */
struct plimit *p_limit; /* (c) Resource limits. */
struct callout p_limco; /* (c) Limit callout handle */
struct sigacts *p_sigacts; /* (x) Signal actions, state (CPU). */ int p_flag; /* (c) P_* flags. */
int p_flag2; /* (c) P2_* flags. */
enum {
PRS_NEW = 0, /* In creation */
PRS_NORMAL, /* threads can be run. */
PRS_ZOMBIE
} p_state;
Вместе с комментами вполне просто догадаться из контекста, что PRS_NEW - это когда процесс на стадии создания и еще не готов к выполнению.
Но да, тут некогда глядеть, тут ведь комментировать нужно!
> так и вижу такого шипилявого деда, любителя маленьких мальчиков, prs_new , mid_fork и понимает что не can survive in the jail в случае чего, вот
> сидит и шутит в коде.
О*еть фантазии. Ну хоть не маленьких пингвиняток ...
> такое впечатление, вот действительно лучше дальше заголовка не читать
У меня такое впечатление, что большей части местных комментаторов это ничего не даст по причине отсутствия базовых знаний. Что не мешает им высказывать свое ценное мнение.