Commit e493073d authored by akpm@osdl.org's avatar akpm@osdl.org Committed by Linus Torvalds

[PATCH] Fix acl Oops

)


From: Andreas Gruenbacher <agruen@suse.de>

ext[23]_get_acl will return an error when reading the attribute fails or
out-of-memory occurs.  Catch this case.
Signed-off-by: default avatarAndreas Gruenbacher <agruen@suse.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 81ddef77
...@@ -283,6 +283,8 @@ ext2_check_acl(struct inode *inode, int mask) ...@@ -283,6 +283,8 @@ ext2_check_acl(struct inode *inode, int mask)
{ {
struct posix_acl *acl = ext2_get_acl(inode, ACL_TYPE_ACCESS); struct posix_acl *acl = ext2_get_acl(inode, ACL_TYPE_ACCESS);
if (IS_ERR(acl))
return PTR_ERR(acl);
if (acl) { if (acl) {
int error = posix_acl_permission(inode, acl, mask); int error = posix_acl_permission(inode, acl, mask);
posix_acl_release(acl); posix_acl_release(acl);
......
...@@ -286,6 +286,8 @@ ext3_check_acl(struct inode *inode, int mask) ...@@ -286,6 +286,8 @@ ext3_check_acl(struct inode *inode, int mask)
{ {
struct posix_acl *acl = ext3_get_acl(inode, ACL_TYPE_ACCESS); struct posix_acl *acl = ext3_get_acl(inode, ACL_TYPE_ACCESS);
if (IS_ERR(acl))
return PTR_ERR(acl);
if (acl) { if (acl) {
int error = posix_acl_permission(inode, acl, mask); int error = posix_acl_permission(inode, acl, mask);
posix_acl_release(acl); posix_acl_release(acl);
......
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