for (i=0;i<acl->num_aces;i++) {
struct security_ace *ace = &acl->aces[i];
+ if (ace->flags & SEC_ACE_FLAG_INHERIT_ONLY) {
+ continue;
+ }
ace->access_mask = pvfs_translate_mask(ace->access_mask);
}
}
}
}
+ if (orig_flags & SEC_ACE_FLAG_INHERIT_ONLY) {
+ creator = &ace.trustee;
+ new_id = &ace.trustee;
+ }
+
/* the CREATOR sids are special when inherited */
if (dom_sid_equal(&ace.trustee, pvfs->sid_cache.creator_owner)) {
creator = pvfs->sid_cache.creator_owner;
}
}
+ pvfs_translate_generic_bits(sd->dacl);
+ sd->type |= SEC_DESC_DACL_PRESENT;
+
return NT_STATUS_OK;
}