]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
apparmor: make free_profile available outside of policy.c
authorJohn Johansen <john.johansen@canonical.com>
Thu, 11 Jul 2013 04:11:43 +0000 (21:11 -0700)
committerJohn Johansen <john.johansen@canonical.com>
Wed, 14 Aug 2013 18:42:06 +0000 (11:42 -0700)
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/include/policy.h
security/apparmor/policy.c
security/apparmor/policy_unpack.c

index 4eafdd88f44ee6ff76a73a59338a8361c12ed5fa..8a68226ff7f740ec0209125086b676ddd52f866b 100644 (file)
@@ -228,6 +228,7 @@ struct aa_namespace *aa_find_namespace(struct aa_namespace *root,
 void aa_free_replacedby_kref(struct kref *kref);
 struct aa_profile *aa_alloc_profile(const char *name);
 struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat);
+void aa_free_profile(struct aa_profile *profile);
 void aa_free_profile_kref(struct kref *kref);
 struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name);
 struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *name);
index aee2e71827cd10aaa6a6440404736b523399d4af..7a80b0c7e0cec4c10c7196683a70505c74c7437e 100644 (file)
@@ -307,7 +307,6 @@ static struct aa_namespace *alloc_namespace(const char *prefix,
        return NULL;
 }
 
-static void free_profile(struct aa_profile *profile);
 /**
  * free_namespace - free a profile namespace
  * @ns: the namespace to free  (MAYBE NULL)
@@ -324,7 +323,7 @@ static void free_namespace(struct aa_namespace *ns)
        aa_put_namespace(ns->parent);
 
        ns->unconfined->ns = NULL;
-       free_profile(ns->unconfined);
+       aa_free_profile(ns->unconfined);
        kzfree(ns);
 }
 
@@ -568,7 +567,7 @@ void aa_free_replacedby_kref(struct kref *kref)
 }
 
 /**
- * free_profile - free a profile
+ * aa_free_profile - free a profile
  * @profile: the profile to free  (MAYBE NULL)
  *
  * Free a profile, its hats and null_profile. All references to the profile,
@@ -577,7 +576,7 @@ void aa_free_replacedby_kref(struct kref *kref)
  * If the profile was referenced from a task context, free_profile() will
  * be called from an rcu callback routine, so we must not sleep here.
  */
-static void free_profile(struct aa_profile *profile)
+void aa_free_profile(struct aa_profile *profile)
 {
        AA_DEBUG("%s(%p)\n", __func__, profile);
 
@@ -612,7 +611,7 @@ static void aa_free_profile_rcu(struct rcu_head *head)
        if (p->flags & PFLAG_NS_COUNT)
                free_namespace(p->ns);
        else
-               free_profile(p);
+               aa_free_profile(p);
 }
 
 /**
index 080a26b11f01a9717aa26bd6d4bdea99917cdff8..ce15313896ee9efa72da3b8478d362ef2b243404 100644 (file)
@@ -616,7 +616,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e)
        else if (!name)
                name = "unknown";
        audit_iface(profile, name, "failed to unpack profile", e, error);
-       aa_put_profile(profile);
+       aa_free_profile(profile);
 
        return ERR_PTR(error);
 }
@@ -763,7 +763,7 @@ int aa_unpack(void *udata, size_t size, struct list_head *lh, const char **ns)
 
                error = verify_profile(profile);
                if (error) {
-                       aa_put_profile(profile);
+                       aa_free_profile(profile);
                        goto fail;
                }