Messages in this thread Patch in this message | | | Date | Mon, 28 Dec 2009 23:00:58 +0800 | Subject | [PATCHv3 1/3]posix_acl: add the pointer check into fs/posix_acl.c | From | liu weni <> |
| |
If the acl pointer is NULL or have some error, the acl is invalid. The Macro of FOREACH_ACL_ENTRY will make some error.
--- 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..45f8afa 100644 --- a/fs/posix_acl.c +++ b/fs/posix_acl.c @@ -76,6 +76,12 @@ posix_acl_valid(const struct posix_acl *acl) unsigned int id = 0; /* keep gcc happy */ int needs_mask = 0;
+ if (!acl) + return -EINVAL; + + if (IS_ERR) + return PTR_ERR(acl); + FOREACH_ACL_ENTRY(pa, acl, pe) { if (pa->e_perm & ~(ACL_READ|ACL_WRITE|ACL_EXECUTE)) return -EINVAL;
| |