aboutsummaryrefslogtreecommitdiffstats
path: root/security
diff options
context:
space:
mode:
authorJohn Johansen <john.johansen@canonical.com>2016-04-11 19:55:10 -0400
committerJohn Johansen <john.johansen@canonical.com>2016-07-12 11:43:10 -0400
commitdcda617a0c5160c73e0aa02813c871339ea08004 (patch)
tree6bea67854d3f63fea51e4199d5f87a2c2d31a2a6 /security
parente1e5fa961612d774c122fc79f93a50a9dc8db321 (diff)
apparmor: fix refcount bug in profile replacement
Signed-off-by: John Johansen <john.johansen@canonical.com> Acked-by: Seth Arnold <seth.arnold@canonical.com>
Diffstat (limited to 'security')
-rw-r--r--security/apparmor/policy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c
index 705c2879d3a9..222052f64e2c 100644
--- a/security/apparmor/policy.c
+++ b/security/apparmor/policy.c
@@ -1189,12 +1189,12 @@ ssize_t aa_replace_profiles(void *udata, size_t size, bool noreplace)
1189 aa_get_profile(newest); 1189 aa_get_profile(newest);
1190 aa_put_profile(parent); 1190 aa_put_profile(parent);
1191 rcu_assign_pointer(ent->new->parent, newest); 1191 rcu_assign_pointer(ent->new->parent, newest);
1192 } else 1192 }
1193 aa_put_profile(newest);
1194 /* aafs interface uses replacedby */ 1193 /* aafs interface uses replacedby */
1195 rcu_assign_pointer(ent->new->replacedby->profile, 1194 rcu_assign_pointer(ent->new->replacedby->profile,
1196 aa_get_profile(ent->new)); 1195 aa_get_profile(ent->new));
1197 __list_add_profile(&parent->base.profiles, ent->new); 1196 __list_add_profile(&parent->base.profiles, ent->new);
1197 aa_put_profile(newest);
1198 } else { 1198 } else {
1199 /* aafs interface uses replacedby */ 1199 /* aafs interface uses replacedby */
1200 rcu_assign_pointer(ent->new->replacedby->profile, 1200 rcu_assign_pointer(ent->new->replacedby->profile,