Commit 7e80f531 authored by Xiyu Yang's avatar Xiyu Yang Committed by Shrirang Bagul
Browse files

apparmor: Fix aa_label refcnt leak in policy_update

BugLink: https://bugs.launchpad.net/bugs/1881801



commit c6b39f07 upstream.

policy_update() invokes begin_current_label_crit_section(), which
returns a reference of the updated aa_label object to "label" with
increased refcount.

When policy_update() returns, "label" becomes invalid, so the refcount
should be decreased to keep refcount balanced.

The reference counting issue happens in one exception handling path of
policy_update(). When aa_may_manage_policy() returns not NULL, the
refcnt increased by begin_current_label_crit_section() is not decreased,
causing a refcnt leak.

Fix this issue by jumping to "end_section" label when
aa_may_manage_policy() returns not NULL.

Fixes: 5ac8c355 ("apparmor: allow introspecting the loaded policy pre internal transform")
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>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: default avatarKamal Mostafa <kamal@canonical.com>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
(cherry picked from commit fac271f483d1c9d7d50563025d7cd9152cc5e986)
Signed-off-by: default avatarShrirang Bagul <shrirang.bagul@canonical.com>
parent 38eb2d49
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment