mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 10:59:18 -04:00
staging: lustre: llite: Setting xattr are properly checked with and without ACLs
Setting extended attributes permissions are properly checked with and without ACLs. In user.* namespace, only regular files and directories can have extended attributes. For sticky directories, only the owner and privileged user can write attributes. Signed-off-by: Dmitry Eremin <dmitry.eremin@intel.com> Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-1482 Reviewed-on: http://review.whamcloud.com/21496 Reviewed-by: John L. Hammond <john.hammond@intel.com> Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com> Reviewed-by: Oleg Drokin <oleg.drokin@intel.com> Signed-off-by: James Simmons <jsimmons@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
aad88bde74
commit
07b71df149
@@ -132,6 +132,15 @@ ll_xattr_set_common(const struct xattr_handler *handler,
|
||||
(!strcmp(name, "ima") || !strcmp(name, "evm")))
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
/*
|
||||
* In user.* namespace, only regular files and directories can have
|
||||
* extended attributes.
|
||||
*/
|
||||
if (handler->flags == XATTR_USER_T) {
|
||||
if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
sprintf(fullname, "%s%s\n", handler->prefix, name);
|
||||
rc = md_setxattr(sbi->ll_md_exp, ll_inode2fid(inode),
|
||||
valid, fullname, pv, size, 0, flags,
|
||||
|
||||
Reference in New Issue
Block a user