Commit 329c5056 authored by Miao Xie's avatar Miao Xie Committed by Li Zefan

Btrfs: Check validity before setting an acl

Call posix_acl_valid() to check if an acl is valid or not.
Signed-off-by: default avatarMiao Xie <miaox@cn.fujitsu.com>
Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
parent 3153495d
...@@ -178,16 +178,17 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name, ...@@ -178,16 +178,17 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name,
if (value) { if (value) {
acl = posix_acl_from_xattr(value, size); acl = posix_acl_from_xattr(value, size);
if (acl == NULL) { if (acl) {
value = NULL; ret = posix_acl_valid(acl);
size = 0; if (ret)
goto out;
} else if (IS_ERR(acl)) { } else if (IS_ERR(acl)) {
return PTR_ERR(acl); return PTR_ERR(acl);
} }
} }
ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type); ret = btrfs_set_acl(NULL, dentry->d_inode, acl, type);
out:
posix_acl_release(acl); posix_acl_release(acl);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment