In this function, the parameter of acl will be called by FOREACH_ACL_ENTRY(macro)
without null pointer check.
I add a Null point checker to it.
In the fs/btrfs/btrfs_acl.c, the posix_acl_equiv_mode will make a error by null pointer.
---
Signed-off-by: Liuwenyi <[email protected]>
Cc: Alexander Viro <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
diff --git a/fs/posix_acl.c b/fs/posix_acl.c
index 39df95a..37d0485 100644
--- a/fs/posix_acl.c
+++ b/fs/posix_acl.c
@@ -150,6 +150,9 @@ posix_acl_equiv_mode(const struct posix_acl *acl, mode_t *mode_p)
mode_t mode = 0;
int not_equiv = 0;
+ if(!acl)
+ return -EINVAL;
+
FOREACH_ACL_ENTRY(pa, acl, pe) {
switch (pa->e_tag) {
case ACL_USER_OBJ:
--------------
Best Regards,
Liuweni
2009-12-17