VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
b24413180f560 (Greg Kroah-Hartman  2017-11-01 15:07:57 +0100  1) // SPDX-License-Identifier: GPL-2.0
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  2) /*
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  3)  * linux/fs/ext2/xattr_security.c
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  4)  * Handler for storing security labels as extended attributes.
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  5)  */
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  6) 
f7699f2b0114f (Al Viro             2012-03-23 16:45:51 -0400  7) #include "ext2.h"
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700  8) #include <linux/security.h>
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700  9) #include "xattr.h"
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 10) 
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 11) static int
d9a82a04033f8 (Andreas Gruenbacher 2015-10-04 19:18:51 +0200 12) ext2_xattr_security_get(const struct xattr_handler *handler,
b296821a7c42f (Al Viro             2016-04-10 20:48:24 -0400 13) 			struct dentry *unused, struct inode *inode,
b296821a7c42f (Al Viro             2016-04-10 20:48:24 -0400 14) 			const char *name, void *buffer, size_t size)
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 15) {
b296821a7c42f (Al Viro             2016-04-10 20:48:24 -0400 16) 	return ext2_xattr_get(inode, EXT2_XATTR_INDEX_SECURITY, name,
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 17) 			      buffer, size);
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 18) }
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 19) 
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 20) static int
d9a82a04033f8 (Andreas Gruenbacher 2015-10-04 19:18:51 +0200 21) ext2_xattr_security_set(const struct xattr_handler *handler,
e65ce2a50cf6a (Christian Brauner   2021-01-21 14:19:27 +0100 22) 			struct user_namespace *mnt_userns,
5930122683dff (Al Viro             2016-05-27 10:19:30 -0400 23) 			struct dentry *unused, struct inode *inode,
5930122683dff (Al Viro             2016-05-27 10:19:30 -0400 24) 			const char *name, const void *value,
5930122683dff (Al Viro             2016-05-27 10:19:30 -0400 25) 			size_t size, int flags)
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 26) {
5930122683dff (Al Viro             2016-05-27 10:19:30 -0400 27) 	return ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY, name,
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 28) 			      value, size, flags);
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 29) }
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 30) 
17cd48e488c0a (Rashika Kheria      2014-02-09 18:34:10 +0530 31) static int ext2_initxattrs(struct inode *inode, const struct xattr *xattr_array,
17cd48e488c0a (Rashika Kheria      2014-02-09 18:34:10 +0530 32) 			   void *fs_info)
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 33) {
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 34) 	const struct xattr *xattr;
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 35) 	int err = 0;
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 36) 
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 37) 	for (xattr = xattr_array; xattr->name != NULL; xattr++) {
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 38) 		err = ext2_xattr_set(inode, EXT2_XATTR_INDEX_SECURITY,
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 39) 				     xattr->name, xattr->value,
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 40) 				     xattr->value_len, 0);
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 41) 		if (err < 0)
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 42) 			break;
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 43) 	}
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 44) 	return err;
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 45) }
10f47e6a1b8b2 (Stephen Smalley     2005-09-09 13:01:39 -0700 46) 
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 47) int
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 48) ext2_init_security(struct inode *inode, struct inode *dir,
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 49) 		   const struct qstr *qstr)
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 50) {
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 51) 	return security_inode_init_security(inode, dir, qstr,
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 52) 					    &ext2_initxattrs, NULL);
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 53) }
9d8f13ba3f483 (Mimi Zohar          2011-06-06 15:29:25 -0400 54) 
749c72efa4bd9 (Stephen Hemminger   2010-05-13 17:53:16 -0700 55) const struct xattr_handler ext2_xattr_security_handler = {
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 56) 	.prefix	= XATTR_SECURITY_PREFIX,
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 57) 	.get	= ext2_xattr_security_get,
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 58) 	.set	= ext2_xattr_security_set,
^1da177e4c3f4 (Linus Torvalds      2005-04-16 15:20:36 -0700 59) };