Commit 30b026a8 authored by John Johansen's avatar John Johansen

apparmor: pass gfp_t parameter into profile allocation

Signed-off-by: default avatarJohn Johansen <john.johansen@canonical.com>
parent 73688d1e
...@@ -172,7 +172,7 @@ void aa_add_profile(struct aa_policy *common, struct aa_profile *profile); ...@@ -172,7 +172,7 @@ void aa_add_profile(struct aa_policy *common, struct aa_profile *profile);
void aa_free_proxy_kref(struct kref *kref); void aa_free_proxy_kref(struct kref *kref);
struct aa_profile *aa_alloc_profile(const char *name); struct aa_profile *aa_alloc_profile(const char *name, gfp_t gfp);
struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat); 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(struct aa_profile *profile);
void aa_free_profile_kref(struct kref *kref); void aa_free_profile_kref(struct kref *kref);
......
...@@ -255,24 +255,25 @@ void aa_free_profile_kref(struct kref *kref) ...@@ -255,24 +255,25 @@ void aa_free_profile_kref(struct kref *kref)
/** /**
* aa_alloc_profile - allocate, initialize and return a new profile * aa_alloc_profile - allocate, initialize and return a new profile
* @hname: name of the profile (NOT NULL) * @hname: name of the profile (NOT NULL)
* @gfp: allocation type
* *
* Returns: refcount profile or NULL on failure * Returns: refcount profile or NULL on failure
*/ */
struct aa_profile *aa_alloc_profile(const char *hname) struct aa_profile *aa_alloc_profile(const char *hname, gfp_t gfp)
{ {
struct aa_profile *profile; struct aa_profile *profile;
/* freed by free_profile - usually through aa_put_profile */ /* freed by free_profile - usually through aa_put_profile */
profile = kzalloc(sizeof(*profile), GFP_KERNEL); profile = kzalloc(sizeof(*profile), gfp);
if (!profile) if (!profile)
return NULL; return NULL;
profile->proxy = kzalloc(sizeof(struct aa_proxy), GFP_KERNEL); profile->proxy = kzalloc(sizeof(struct aa_proxy), gfp);
if (!profile->proxy) if (!profile->proxy)
goto fail; goto fail;
kref_init(&profile->proxy->count); kref_init(&profile->proxy->count);
if (!aa_policy_init(&profile->base, NULL, hname, GFP_KERNEL)) if (!aa_policy_init(&profile->base, NULL, hname, gfp))
goto fail; goto fail;
kref_init(&profile->count); kref_init(&profile->count);
...@@ -312,7 +313,7 @@ struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat) ...@@ -312,7 +313,7 @@ struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat)
goto fail; goto fail;
sprintf(name, "%s//null-%x", parent->base.hname, uniq); sprintf(name, "%s//null-%x", parent->base.hname, uniq);
profile = aa_alloc_profile(name); profile = aa_alloc_profile(name, GFP_KERNEL);
kfree(name); kfree(name);
if (!profile) if (!profile)
goto fail; goto fail;
......
...@@ -102,7 +102,7 @@ static struct aa_ns *alloc_ns(const char *prefix, const char *name) ...@@ -102,7 +102,7 @@ static struct aa_ns *alloc_ns(const char *prefix, const char *name)
mutex_init(&ns->lock); mutex_init(&ns->lock);
/* released by aa_free_ns() */ /* released by aa_free_ns() */
ns->unconfined = aa_alloc_profile("unconfined"); ns->unconfined = aa_alloc_profile("unconfined", GFP_KERNEL);
if (!ns->unconfined) if (!ns->unconfined)
goto fail_unconfined; goto fail_unconfined;
......
...@@ -486,7 +486,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e) ...@@ -486,7 +486,7 @@ static struct aa_profile *unpack_profile(struct aa_ext *e)
if (!unpack_str(e, &name, NULL)) if (!unpack_str(e, &name, NULL))
goto fail; goto fail;
profile = aa_alloc_profile(name); profile = aa_alloc_profile(name, GFP_KERNEL);
if (!profile) if (!profile)
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment