Messages in this thread | | | Date | Thu, 23 Aug 2012 09:51:43 -0700 | From | Casey Schaufler <> | Subject | Re: [PATCH] Smack: setprocattr memory leak fix |
| |
On 8/22/2012 11:44 AM, Casey Schaufler wrote:
> From: Casey Schaufler <casey@schaufler-ca.com> > Subject: [PATCH] Smack: setprocattr memory leak fix > > The data structure allocations being done in prepare_creds > are duplicated in smack_setprocattr. This results in the > structure allocated in prepare_creds being orphaned and > never freed. The duplicate code is removed from > smack_setprocattr. > > Targeted for git://git.gitorious.org/smack-next/kernel.git > > Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
Applied to git://git.gitorious.org/smack-next/kernel.git
> > --- > > security/smack/smack_lsm.c | 14 ++------------ > 1 files changed, 2 insertions(+), 12 deletions(-) > > diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c > index ce9273a..2874c73 100644 > --- a/security/smack/smack_lsm.c > +++ b/security/smack/smack_lsm.c > @@ -2684,9 +2684,7 @@ static int smack_getprocattr(struct task_struct *p, char *name, char **value) > static int smack_setprocattr(struct task_struct *p, char *name, > void *value, size_t size) > { > - int rc; > struct task_smack *tsp; > - struct task_smack *oldtsp; > struct cred *new; > char *newsmack; > > @@ -2716,21 +2714,13 @@ static int smack_setprocattr(struct task_struct *p, char *name, > if (newsmack == smack_known_web.smk_known) > return -EPERM; > > - oldtsp = p->cred->security; > new = prepare_creds(); > if (new == NULL) > return -ENOMEM; > > - tsp = new_task_smack(newsmack, oldtsp->smk_forked, GFP_KERNEL); > - if (tsp == NULL) { > - kfree(new); > - return -ENOMEM; > - } > - rc = smk_copy_rules(&tsp->smk_rules, &oldtsp->smk_rules, GFP_KERNEL); > - if (rc != 0) > - return rc; > + tsp = new->security; > + tsp->smk_task = newsmack; > > - new->security = tsp; > commit_creds(new); > return size; > } > > -- > To unsubscribe from this list: send the line "unsubscribe linux-security-module" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
| |