• Jann Horn's avatar
    apparmor: don't try to replace stale label in ptrace access check · 1f8266ff
    Jann Horn authored
    As a comment above begin_current_label_crit_section() explains,
    begin_current_label_crit_section() must run in sleepable context because
    when label_is_stale() is true, aa_replace_current_label() runs, which uses
    prepare_creds(), which can sleep.
    Until now, the ptrace access check (which runs with a task lock held)
    violated this rule.
    
    Also add a might_sleep() assertion to begin_current_label_crit_section(),
    because asserts are less likely to be ignored than comments.
    
    Fixes: b2d09ae4 ("apparmor: move ptrace checks to using labels")
    Signed-off-by: default avatarJann Horn <jannh@google.com>
    Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
    1f8266ff
cred.h 4.6 KB