reiserfs: Switch to security_inode_init_security()
authorRoberto Sassu <roberto.sassu@huawei.com>
Tue, 14 Mar 2023 08:17:15 +0000 (09:17 +0100)
committerPaul Moore <paul@paul-moore.com>
Thu, 23 Mar 2023 23:32:02 +0000 (19:32 -0400)
commit52ca4b6435a493e47aaa98e7345e19e1e8710b13
treeeba45774b7d8410c66ad9874eea704d8ac743f41
parentb9b8701b43146f5ebd7fe13d89103cfc545cda34
reiserfs: Switch to security_inode_init_security()

In preparation for removing security_old_inode_init_security(), switch to
security_inode_init_security(). Commit 572302af1258 ("reiserfs: Add missing
calls to reiserfs_security_free()") fixed possible memory leaks and another
issue related to adding an xattr at inode creation time.

Define the initxattrs callback reiserfs_initxattrs(), to populate the
name/value/len triple in the reiserfs_security_handle() with the first
xattr provided by LSMs. Make a copy of the xattr value, as
security_inode_init_security() frees it.

After the call to security_inode_init_security(), remove the check for
returning -EOPNOTSUPP, as security_inode_init_security() changes it to
zero.

Multiple xattrs are currently not supported, as the
reiserfs_security_handle structure is exported to user space. As a
consequence, even if EVM is invoked, it will not provide an xattr (if it
is not the first to set it, its xattr will be discarded; if it is the
first, it does not have xattrs to calculate the HMAC on).

Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Reviewed-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
fs/reiserfs/xattr_security.c