• Xiyu Yang's avatar
    apparmor: fix potential label refcnt leak in aa_change_profile · a0b845ff
    Xiyu Yang authored
    aa_change_profile() invokes aa_get_current_label(), which returns
    a reference of the current task's label.
    
    According to the comment of aa_get_current_label(), the returned
    reference must be put with aa_put_label().
    However, when the original object pointed by "label" becomes
    unreachable because aa_change_profile() returns or a new object
    is assigned to "label", reference count increased by
    aa_get_current_label() is not decreased, causing a refcnt leak.
    
    Fix this by calling aa_put_label() before aa_change_profile() return
    and dropping unnecessary aa_get_current_label().
    
    Fixes: 9fcf78cc ("apparmor: update domain transitions that are subsets of confinement at nnp")
    Signed-off-by: default avatarXiyu Yang <xiyuyang19@fudan.edu.cn>
    Signed-off-by: default avatarXin Tan <tanxin.ctf@gmail.com>
    Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
    a0b845ff
domain.c 38.4 KB