[PATCH] Fix acl Oops
authorakpm@osdl.org <akpm@osdl.org>
Sat, 16 Apr 2005 22:24:00 +0000 (15:24 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 16 Apr 2005 22:24:00 +0000 (15:24 -0700)
\r)

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: Andreas Gruenbacher <agruen@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/ext2/acl.c
fs/ext3/acl.c

index 8369ee8d28c4f2249ab20d0cd36645d7d18148de..25f4a64fd6bc005f2204973300461dfa185bc020 100644 (file)
@@ -283,6 +283,8 @@ ext2_check_acl(struct inode *inode, int mask)
 {
        struct posix_acl *acl = ext2_get_acl(inode, ACL_TYPE_ACCESS);
 
+       if (IS_ERR(acl))
+               return PTR_ERR(acl);
        if (acl) {
                int error = posix_acl_permission(inode, acl, mask);
                posix_acl_release(acl);
index 328592c3a956f9e03317af985694b24fc608b8ff..638c13a26c0375dc5536fe44e51963c1cf217040 100644 (file)
@@ -286,6 +286,8 @@ ext3_check_acl(struct inode *inode, int mask)
 {
        struct posix_acl *acl = ext3_get_acl(inode, ACL_TYPE_ACCESS);
 
+       if (IS_ERR(acl))
+               return PTR_ERR(acl);
        if (acl) {
                int error = posix_acl_permission(inode, acl, mask);
                posix_acl_release(acl);