summaryrefslogtreecommitdiffstats
path: root/lib/libc/posix1e/acl_calc_mask.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/posix1e/acl_calc_mask.c')
-rw-r--r--lib/libc/posix1e/acl_calc_mask.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/libc/posix1e/acl_calc_mask.c b/lib/libc/posix1e/acl_calc_mask.c
index 95fd260..a2d1527 100644
--- a/lib/libc/posix1e/acl_calc_mask.c
+++ b/lib/libc/posix1e/acl_calc_mask.c
@@ -50,12 +50,6 @@ acl_calc_mask(acl_t *acl_p)
acl_t acl_new;
int i, mask_mode, mask_num;
- if (!_acl_brand_may_be(*acl_p, ACL_BRAND_POSIX)) {
- errno = EINVAL;
- return (-1);
- }
- _acl_brand_as(*acl_p, ACL_BRAND_POSIX);
-
/*
* (23.4.2.4) requires acl_p to point to a pointer to a valid ACL.
* Since one of the primary reasons to use this function would be
@@ -67,6 +61,13 @@ acl_calc_mask(acl_t *acl_p)
errno = EINVAL;
return (-1);
}
+
+ if (!_acl_brand_may_be(*acl_p, ACL_BRAND_POSIX)) {
+ errno = EINVAL;
+ return (-1);
+ }
+ _acl_brand_as(*acl_p, ACL_BRAND_POSIX);
+
acl_int = &(*acl_p)->ats_acl;
if ((acl_int->acl_cnt < 3) || (acl_int->acl_cnt > ACL_MAX_ENTRIES)) {
errno = EINVAL;
OpenPOWER on IntegriCloud