apparmor: pass gfp param into aa_policy_init()
authorJohn Johansen <john.johansen@canonical.com>
Mon, 16 Jan 2017 08:42:31 +0000 (00:42 -0800)
committerJohn Johansen <john.johansen@canonical.com>
Mon, 16 Jan 2017 09:18:27 +0000 (01:18 -0800)
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/include/lib.h
security/apparmor/lib.c
security/apparmor/policy.c
security/apparmor/policy_ns.c

index 7e81cda..fa281c2 100644 (file)
@@ -194,7 +194,7 @@ static inline struct aa_policy *__policy_strn_find(struct list_head *head,
 }
 
 bool aa_policy_init(struct aa_policy *policy, const char *prefix,
-                   const char *name);
+                   const char *name, gfp_t gfp);
 void aa_policy_destroy(struct aa_policy *policy);
 
 #endif /* AA_LIB_H */
index 91d5766..bcd598c 100644 (file)
@@ -171,20 +171,20 @@ void *__aa_kvmalloc(size_t size, gfp_t flags)
  * Returns: true if policy init successful
  */
 bool aa_policy_init(struct aa_policy *policy, const char *prefix,
-                   const char *name)
+                   const char *name, gfp_t gfp)
 {
        /* freed by policy_free */
        if (prefix) {
                policy->hname = kmalloc(strlen(prefix) + strlen(name) + 3,
-                                       GFP_KERNEL);
+                                       gfp);
                if (policy->hname)
                        sprintf((char *)policy->hname, "%s//%s", prefix, name);
        } else
-               policy->hname = kstrdup(name, GFP_KERNEL);
+               policy->hname = kstrdup(name, gfp);
        if (!policy->hname)
                return 0;
        /* base.name is a substring of fqname */
-       policy->name = (char *)basename(policy->hname);
+       policy->name = basename(policy->hname);
        INIT_LIST_HEAD(&policy->list);
        INIT_LIST_HEAD(&policy->profiles);
 
index 3b23960..5d99fb7 100644 (file)
@@ -272,7 +272,7 @@ struct aa_profile *aa_alloc_profile(const char *hname)
                goto fail;
        kref_init(&profile->proxy->count);
 
-       if (!aa_policy_init(&profile->base, NULL, hname))
+       if (!aa_policy_init(&profile->base, NULL, hname, GFP_KERNEL))
                goto fail;
        kref_init(&profile->count);
 
index e7b7a82..8a5632f 100644 (file)
@@ -95,7 +95,7 @@ static struct aa_ns *alloc_ns(const char *prefix, const char *name)
        AA_DEBUG("%s(%p)\n", __func__, ns);
        if (!ns)
                return NULL;
-       if (!aa_policy_init(&ns->base, prefix, name))
+       if (!aa_policy_init(&ns->base, prefix, name, GFP_KERNEL))
                goto fail_ns;
 
        INIT_LIST_HEAD(&ns->sub_ns);