Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Jun 2018 22:57:04 +0000 (15:57 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 7 Jun 2018 22:57:04 +0000 (15:57 -0700)
Pull smack update from James Morris:
 "From Casey:

    One simple patch that fixes a memory leak in kernfs and labeled NFS"

* 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
  Smack: Fix memory leak in smack_inode_getsecctx

security/smack/smack_lsm.c

index dcb976f98df2818eb0563d8695ef8f8c448d7349..7ad226018f51674b8e97a5d6ff2aaeabd9163bbd 100644 (file)
@@ -1545,9 +1545,9 @@ static int smack_inode_listsecurity(struct inode *inode, char *buffer,
  */
 static void smack_inode_getsecid(struct inode *inode, u32 *secid)
 {
-       struct inode_smack *isp = inode->i_security;
+       struct smack_known *skp = smk_of_inode(inode);
 
-       *secid = isp->smk_inode->smk_secid;
+       *secid = skp->smk_secid;
 }
 
 /*
@@ -4559,12 +4559,10 @@ static int smack_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen)
 
 static int smack_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
 {
-       int len = 0;
-       len = smack_inode_getsecurity(inode, XATTR_SMACK_SUFFIX, ctx, true);
+       struct smack_known *skp = smk_of_inode(inode);
 
-       if (len < 0)
-               return len;
-       *ctxlen = len;
+       *ctx = skp->smk_known;
+       *ctxlen = strlen(skp->smk_known);
        return 0;
 }