lkml.org 
[lkml]   [2019]   [Jul]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 037/413] signal/pid_namespace: Fix reboot_pid_ns to use send_sig not force_sig
    Date
    [ Upstream commit f9070dc94542093fd516ae4ccea17ef46a4362c5 ]

    The locking in force_sig_info is not prepared to deal with a task that
    exits or execs (as sighand may change). The is not a locking problem
    in force_sig as force_sig is only built to handle synchronous
    exceptions.

    Further the function force_sig_info changes the signal state if the
    signal is ignored, or blocked or if SIGNAL_UNKILLABLE will prevent the
    delivery of the signal. The signal SIGKILL can not be ignored and can
    not be blocked and SIGNAL_UNKILLABLE won't prevent it from being
    delivered.

    So using force_sig rather than send_sig for SIGKILL is confusing
    and pointless.

    Because it won't impact the sending of the signal and and because
    using force_sig is wrong, replace force_sig with send_sig.

    Cc: Daniel Lezcano <daniel.lezcano@free.fr>
    Cc: Serge Hallyn <serge@hallyn.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Fixes: cf3f89214ef6 ("pidns: add reboot_pid_ns() to handle the reboot syscall")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    kernel/pid_namespace.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
    index f54bc7cb6c2d..6d726cef241c 100644
    --- a/kernel/pid_namespace.c
    +++ b/kernel/pid_namespace.c
    @@ -326,7 +326,7 @@ int reboot_pid_ns(struct pid_namespace *pid_ns, int cmd)
    }

    read_lock(&tasklist_lock);
    - force_sig(SIGKILL, pid_ns->child_reaper);
    + send_sig(SIGKILL, pid_ns->child_reaper, 1);
    read_unlock(&tasklist_lock);

    do_exit(0);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-07-24 23:09    [W:4.043 / U:1.356 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site