提交 e493073d 编写于 作者: A akpm@osdl.org 提交者: 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: NAndreas Gruenbacher <agruen@suse.de>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 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% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册