[apparmor] [PATCH 15/16] apparmor: fix refcount race when finding a child profile
Seth Arnold
seth.arnold at canonical.com
Thu Apr 28 03:33:59 UTC 2016
On Wed, Apr 20, 2016 at 11:52:57PM -0700, John Johansen wrote:
> When finding a child profile via an rcu critical section, the profile
> may be put and scheduled for deletion after the child is found but
> before its refcount is incremented.
>
> Protect against this by repeating the lookup if the profiles refcount
> is 0 and is one its way to deletion.
>
> Signed-off-by: John Johansen <john.johansen at canonical.com>
Acked-by: Seth Arnold <seth.arnold at canonical.com>
THanks
> ---
> security/apparmor/policy.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c
> index ca402d0..7807125 100644
> --- a/security/apparmor/policy.c
> +++ b/security/apparmor/policy.c
> @@ -766,7 +766,9 @@ struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name)
> struct aa_profile *profile;
>
> rcu_read_lock();
> - profile = aa_get_profile(__find_child(&parent->base.profiles, name));
> + do {
> + profile = __find_child(&parent->base.profiles, name);
> + } while (profile && !aa_get_profile_not0(profile));
> rcu_read_unlock();
>
> /* refcount released by caller */
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: Digital signature
URL: <https://lists.ubuntu.com/archives/apparmor/attachments/20160427/8745ee91/attachment.pgp>
More information about the AppArmor
mailing list