acl_info
sec_attr_t acl_info;
(void) strlcpy(tlm_acls->acl_info.attr_info, acltp,
(void) strlcpy(tlm_acls->acl_info.attr_info, acltp,
(void) strlcpy(bpp->bp_tlmacl->acl_info.attr_info,
*bpp->bp_tlmacl->acl_info.attr_info = '\0';
(void) strlcpy(bpp->bp_tlmacl->acl_info.attr_info,
*bpp->bp_tlmacl->acl_info.attr_info = '\0';
(void) strlcpy(tacl->acl_info.attr_info, acltp,
(void) output_acl_header(&tlm_acls->acl_info,
output_acl_header(sec_attr_t *acl_info,
if ((acl_info == NULL) || (*acl_info->attr_info == '\0'))
acl_info->attr_type = UFSD_ACL;
(void) snprintf(acl_info->attr_len, sizeof (acl_info->attr_len),
"%06o", strlen(acl_info->attr_info));
acl_size = sizeof (*acl_info);
(void) output_mem(local_commands, (void *)acl_info, acl_size);
(void) output_acl_header(&tlm_acls->acl_info,
bp = ((char *)&acls->acl_info) + *acl_spot;
erc = acl_fromtext(acls->acl_info.attr_info, &aclp);
if (acl_info == NULL) {
acl_info->vsa_aclcnt = zacecnt;
acl_info->vsa_aclentp = zacep0;
acl_info->vsa_aclentsz = zacl_size;
acl_info->acl_cnt = zacecnt;
acl_info->acl_aclp = zacep0;
vsecattr_t *acl_info,
acl_t *acl_info,
if (acl_info == NULL)
if ((acl_info->vsa_mask & VSA_ACE) == 0)
zacecnt = acl_info->vsa_aclcnt;
zacevec = acl_info->vsa_aclentp;
if (acl_info->acl_type != ACE_T ||
acl_info->acl_entry_size != sizeof (ace_t))
zacecnt = acl_info->acl_cnt;
zacevec = acl_info->acl_aclp;
vsecattr_t *acl_info,
acl_t *acl_info,
if (acl_info) {
if (acl_info->acl_type != ACE_T ||
acl_info->acl_aclp != NULL ||
acl_info->acl_entry_size != sizeof (ace_t))
acl_t *acl_info;
acl_info = acl_alloc(ACE_T);
acl_info = acl_alloc(ACLENT_T);
if (acl_info == NULL)
acl_info->acl_cnt = acl(fname, cntcmd, 0, NULL);
acl_info->acl_cnt = facl(fd, cntcmd, 0, NULL);
if (acl_info->acl_cnt < 0) {
acl_free(acl_info);
if (acl_info->acl_cnt == 0) {
acl_free(acl_info);
acl_info->acl_aclp =
malloc(acl_info->acl_cnt * acl_info->acl_entry_size);
if (acl_info->acl_aclp == NULL) {
acl_free(acl_info);
error = acl(fname, getcmd, acl_info->acl_cnt,
acl_info->acl_aclp);
error = facl(fd, getcmd, acl_info->acl_cnt,
acl_info->acl_aclp);
acl_free(acl_info);
acl_info->acl_flags =
acl_info->acl_flags = 0;
switch (acl_info->acl_type) {
if (acl_info->acl_cnt <= MIN_ACL_ENTRIES)
acl_info->acl_flags |= ACL_IS_TRIVIAL;
if (ace_trivial(acl_info->acl_aclp, acl_info->acl_cnt) == 0)
acl_info->acl_flags |= ACL_IS_TRIVIAL;
acl_free(acl_info);
if ((acl_info->acl_flags & ACL_IS_TRIVIAL) &&
acl_free(acl_info);
*aclp = acl_info;
(void) memcpy(vsecattr->vsa_aclentp, acl_info->acl_aclp,
(acl_info->acl_flags & ACL_IS_DIR)) {
if (acl_info->acl_cnt < 1 ||
acl_info->acl_cnt > MAX_ACL_ENTRIES) {
vsecattr->vsa_aclcnt = acl_info->acl_cnt;
vsecattr->vsa_aclflags = acl_info->acl_flags & ACL_FLAGS_ALL;
(void) memcpy(vsecattr->vsa_aclentp, acl_info->acl_aclp,
acl_t *acl_info;
acl_info = acl_alloc(acl_type);
if (acl_info == NULL)
acl_info->acl_flags = 0;
acl_info->acl_cnt = numacls;
acl_info->acl_aclp = kmem_alloc(aclbsize + dfaclbsize,
(void) memcpy(acl_info->acl_aclp, vsecattr->vsa_aclentp,
(void) memcpy((char *)acl_info->acl_aclp + aclbsize,
if (acl_info->acl_cnt <= MIN_ACL_ENTRIES)
acl_info->acl_flags |= ACL_IS_TRIVIAL;
acl_info->acl_cnt = vsecattr->vsa_aclcnt;
acl_info->acl_flags = vsecattr->vsa_aclflags;
acl_info->acl_aclp = kmem_alloc(aclbsize, KM_SLEEP);
(void) memcpy(acl_info->acl_aclp, vsecattr->vsa_aclentp,
if (ace_trivial(acl_info->acl_aclp, acl_info->acl_cnt) == 0)
acl_info->acl_flags |= ACL_IS_TRIVIAL;
acl_free(acl_info);
return (acl_info);
smb_fsacl_to_vsa(acl_t *acl_info, vsecattr_t *vsecattr, int *aclbsize)
ASSERT(acl_info);
switch (acl_info->acl_type) {
numacls = acl_info->acl_cnt;
typedef struct acl_info acl_t;