Before setting the acl, call posix_acl_valid() to check if it is
valid or not.
Signed-off-by: zhang zhen <[email protected]>
---
fs/ext2/acl.c | 6 ++++++
fs/ext3/acl.c | 6 ++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/fs/ext2/acl.c b/fs/ext2/acl.c
index 27695e6..64b53b8 100644
--- a/fs/ext2/acl.c
+++ b/fs/ext2/acl.c
@@ -189,6 +189,12 @@ ext2_set_acl(struct inode *inode, struct posix_acl *acl, int type)
size_t size = 0;
int error;
+ if (acl) {
+ error = posix_acl_valid(acl);
+ if (error < 0)
+ return error;
+ }
+
switch(type) {
case ACL_TYPE_ACCESS:
name_index = EXT2_XATTR_INDEX_POSIX_ACL_ACCESS;
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c
index 8bbaf5b..68f873a 100644
--- a/fs/ext3/acl.c
+++ b/fs/ext3/acl.c
@@ -191,6 +191,12 @@ __ext3_set_acl(handle_t *handle, struct inode *inode, int type,
size_t size = 0;
int error;
+ if (acl) {
+ error = posix_acl_valid(acl);
+ if (error < 0)
+ return error;
+ }
+
switch(type) {
case ACL_TYPE_ACCESS:
name_index = EXT3_XATTR_INDEX_POSIX_ACL_ACCESS;
--
1.6.0.2
On Tue, Apr 08, 2014 at 10:04:09AM +0800, ZhangZhen wrote:
> Before setting the acl, call posix_acl_valid() to check if it is
> valid or not.
>
> Signed-off-by: zhang zhen <[email protected]>
As Christoph noted, this isn't needed since this check is done in the
VFS.
- Ted