security: cap_inode_getsecctx returning garbage
authorJ. Bruce Fields <bfields@redhat.com>
Wed, 8 May 2013 22:05:41 +0000 (18:05 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 13 May 2013 14:11:46 +0000 (10:11 -0400)
We shouldn't be returning success from this function without also
filling in the return values ctx and ctxlen.

Note currently this doesn't appear to cause bugs since the only
inode_getsecctx caller I can find is fs/sysfs/inode.c, which only calls
this if security_inode_setsecurity succeeds.  Assuming
security_inode_setsecurity is set to cap_inode_setsecurity whenever
inode_getsecctx is set to cap_inode_getsecctx, this function can never
actually called.

So I noticed this only because the server labeled NFS patches add a real
caller.

Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
security/capability.c

index 1728d4e375db509c4e192e0e69fb1a0ee020bf49..83efc90b344d1ae96c2c9182444fd8ef82c71504 100644 (file)
@@ -843,7 +843,7 @@ static int cap_inode_setsecctx(struct dentry *dentry, void *ctx, u32 ctxlen)
 
 static int cap_inode_getsecctx(struct inode *inode, void **ctx, u32 *ctxlen)
 {
-       return 0;
+       return -EOPNOTSUPP;
 }
 #ifdef CONFIG_KEYS
 static int cap_key_alloc(struct key *key, const struct cred *cred,