• John Stultz's avatar
    proc: fix timerslack_ns CAP_SYS_NICE check when adjusting self · 4b2bd5fe
    John Stultz authored
    In changing from checking ptrace_may_access(p, PTRACE_MODE_ATTACH_FSCREDS)
    to capable(CAP_SYS_NICE), I missed that ptrace_my_access succeeds when p
    == current, but the CAP_SYS_NICE doesn't.
    
    Thus while the previous commit was intended to loosen the needed
    privileges to modify a processes timerslack, it needlessly restricted a
    task modifying its own timerslack via the proc/<tid>/timerslack_ns
    (which is permitted also via the PR_SET_TIMERSLACK method).
    
    This patch corrects this by checking if p == current before checking the
    CAP_SYS_NICE value.
    
    This patch applies on top of my two previous patches currently in -mm
    
    Link: http://lkml.kernel.org/r/1471906870-28624-1-git-send-email-john.stultz@linaro.orgSigned-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    Acked-by: default avatarKees Cook <keescook@chromium.org>
    Cc: "Serge E. Hallyn" <serge@hallyn.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Oren Laadan <orenl@cellrox.com>
    Cc: Ruchi Kandoi <kandoiruchi@google.com>
    Cc: Rom Lemarchand <romlem@android.com>
    Cc: Todd Kjos <tkjos@google.com>
    Cc: Colin Cross <ccross@android.com>
    Cc: Nick Kralevich <nnk@google.com>
    Cc: Dmitry Shmidt <dimitrysh@google.com>
    Cc: Elliott Hughes <enh@google.com>
    Cc: Android Kernel Team <kernel-team@android.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    4b2bd5fe
base.c 83.1 KB