Messages in this thread Patch in this message | | | Date | Tue, 29 Dec 2009 07:37:02 +0800 | Subject | [PATCHv4 3/3]posix_acl: Add the acl pointer check | From | liu weni <> |
| |
While the acl pointer is IS_ERR, We cannot get the correct return.
And the acl pointer is NULL. Oh, my god! The FOREACH_ACL_ENTRY will call that.
---
Signed-off-by: Liuwenyi <qingshenlwy@gmail.com> Cc: Alexander Viro <viro@zeniv.linux.org.uk> Cc: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org
--- diff --git a/fs/posix_acl.c b/fs/posix_acl.c index 39df95a..4e0261b 100644 --- a/fs/posix_acl.c +++ b/fs/posix_acl.c @@ -213,6 +213,12 @@ posix_acl_permission(struct inode *inode, const struct posix_acl *acl, int want) const struct posix_acl_entry *pa, *pe, *mask_obj; int found = 0;
+ if (!acl) + return -EINVAL; + + if (IS_ERR(acl)) + return PTR_ERR(acl); + FOREACH_ACL_ENTRY(pa, acl, pe) { switch(pa->e_tag) { case ACL_USER_OBJ:
| |