Lines Matching defs:pxdesc

962 BOOL ntfs_valid_posix(const struct POSIX_SECURITY *pxdesc)
990 pacl = &pxdesc->acl;
1004 for (i=0; i<pxdesc->acccnt + pxdesc->defcnt; i++) {
1005 if (i >= pxdesc->firstdef)
1057 if ((pxdesc->acccnt > 0)
1064 if (pxdesc->defcnt && (pxdesc->acccnt > pxdesc->firstdef))
1066 if ((pxdesc->acccnt < 0) || (pxdesc->defcnt < 0))
1069 if (pxdesc->mode
1071 && (checks[0].mode != (pxdesc->mode & 0777)))
1074 if (pxdesc->tagsset != checks[0].tagsset)
1084 static mode_t posix_header(struct POSIX_SECURITY *pxdesc, mode_t basemode)
1093 for (i=0; i<pxdesc->acccnt; i++) {
1094 pace = &pxdesc->acl.ace[i];
1111 pxdesc->tagsset = tagsset;
1112 pxdesc->mode = mode;
1113 pxdesc->acl.version = POSIX_VERSION;
1114 pxdesc->acl.flags = 0;
1115 pxdesc->acl.filler = 0;
1129 void ntfs_sort_posix(struct POSIX_SECURITY *pxdesc)
1145 pacl = &pxdesc->acl;
1150 for (i=1; i<pxdesc->acccnt; i++) {
1171 if ((pxdesc->defcnt) > 1) {
1172 offs = pxdesc->firstdef;
1175 for (i=offs+1; i<offs+pxdesc->defcnt; i++) {
1201 int ntfs_merge_mode_posix(struct POSIX_SECURITY *pxdesc, mode_t mode)
1210 for (i=pxdesc->acccnt-1; i>=0; i--) {
1211 pace = &pxdesc->acl.ace[i];
1234 pxdesc->mode = mode;
1305 const struct POSIX_SECURITY *pxdesc __attribute__((unused)),
1350 const struct POSIX_SECURITY *pxdesc, mode_t mode,
1361 if (pxdesc && pxdesc->defcnt) {
1363 count = 2*pxdesc->defcnt + 3;
1365 count = pxdesc->defcnt + 3;
1377 defcnt = (pxdesc ? pxdesc->defcnt : 0);
1380 *pyace = pxdesc->acl.ace[pxdesc->firstdef + i];
1449 &pxdesc->acl.ace[pxdesc->firstdef],size);
1541 struct POSIX_SECURITY *pxdesc;
1551 pxdesc = (struct POSIX_SECURITY*)malloc(size);
1552 if (pxdesc) {
1558 targetace = pxdesc->acl.ace;
1561 pxdesc->acccnt = k;
1565 pxdesc->firstdef = k;
1568 targetace = &pxdesc->acl.ace[k];
1571 pxdesc->defcnt = k;
1575 pxdesc->acl.version = POSIX_VERSION;
1576 pxdesc->acl.flags = 0;
1577 pxdesc->acl.filler = 0;
1578 pxdesc->mode = 0;
1579 pxdesc->tagsset = 0;
1582 return (pxdesc);
2100 char *secattr, int offs, const struct POSIX_SECURITY *pxdesc,
2132 mode = pxdesc->mode;
2171 for (i=pxdesc->acccnt+pxdesc->defcnt-1; i>=0; i--) {
2172 if (i >= pxdesc->acccnt) {
2174 pxace = &pxdesc->acl.ace[i + pxdesc->firstdef - pxdesc->acccnt];
2177 pxace = &pxdesc->acl.ace[i];
2216 if (pxdesc->defcnt && (pxdesc->firstdef != pxdesc->acccnt)) {
2227 for (i=0; (i<(pxdesc->acccnt + pxdesc->defcnt)) && ok; i++) {
2228 if (i >= pxdesc->acccnt) {
2232 pxace = &pxdesc->acl.ace[i + pxdesc->firstdef - pxdesc->acccnt];
2234 if (pxdesc->defcnt)
2240 pxace = &pxdesc->acl.ace[i];
2287 for (i=0; (i<(pxdesc->acccnt + pxdesc->defcnt)) && ok; i++) {
2288 if (i >= pxdesc->acccnt) {
2292 pxace = &pxdesc->acl.ace[i + pxdesc->firstdef - pxdesc->acccnt];
2294 if (pxdesc->defcnt)
2300 pxace = &pxdesc->acl.ace[i];
2751 struct POSIX_SECURITY *pxdesc,
2782 if (pxdesc->mode & 07000) /* a NULL ACE for special modes */
2785 for (k=0; k<pxdesc->acccnt; k++) {
2786 if ((pxdesc->acl.ace[k].tag == POSIX_ACL_USER)
2787 || (pxdesc->acl.ace[k].tag == POSIX_ACL_GROUP))
2791 newattrsz += 2*MAX_SID_SIZE*pxdesc->defcnt;
2811 pxdesc, isdir, usid, gsid);
3674 struct POSIX_SECURITY *pxdesc;
3725 pxdesc = (struct POSIX_SECURITY*)malloc(
3744 pxace = &pxdesc->acl.ace[l - 1];
3747 pxace = &pxdesc->acl.ace[k];
3965 pxace = &pxdesc->acl.ace[--l];
3967 pxace = &pxdesc->acl.ace[k++];
3984 pxace = &pxdesc->acl.ace[--l];
3986 pxace = &pxdesc->acl.ace[k++];
3999 pxace = &pxdesc->acl.ace[--l];
4001 pxace = &pxdesc->acl.ace[k++];
4013 if ((pxdesc->acl.ace[j].tag == POSIX_ACL_MASK)
4014 && (pxdesc->acl.ace[j].id != -1)
4015 && ((pxdesc->acl.ace[j+1].tag != POSIX_ACL_GROUP)
4016 || (pxdesc->acl.ace[j+1].id
4017 != pxdesc->acl.ace[j].id))) {
4018 pxace = &pxdesc->acl.ace[k];
4020 pxace->id = pxdesc->acl.ace[j].id;
4025 if (pxdesc->acl.ace[j].tag == POSIX_ACL_MASK)
4026 pxdesc->acl.ace[j].id = -1;
4031 if ((pxdesc->acl.ace[j].tag == POSIX_ACL_MASK)
4032 && (pxdesc->acl.ace[j].id != -1)
4033 && ((pxdesc->acl.ace[j+1].tag != POSIX_ACL_GROUP)
4034 || (pxdesc->acl.ace[j+1].id
4035 != pxdesc->acl.ace[j].id))) {
4036 pxace = &pxdesc->acl.ace[l - 1];
4038 pxace->id = pxdesc->acl.ace[j].id;
4043 if (pxdesc->acl.ace[j].tag == POSIX_ACL_MASK)
4044 pxdesc->acl.ace[j].id = -1;
4057 pxace = &pxdesc->acl.ace[--l];
4059 pxace = &pxdesc->acl.ace[k++];
4069 free(pxdesc);
4070 pxdesc = (struct POSIX_SECURITY*)NULL;
4072 pxdesc->acccnt = k;
4073 pxdesc->defcnt = alloccnt - l;
4074 pxdesc->firstdef = l;
4075 pxdesc->tagsset = ctx[0].tagsset;
4076 pxdesc->acl.version = POSIX_VERSION;
4077 pxdesc->acl.flags = 0;
4078 pxdesc->acl.filler = 0;
4079 ntfs_sort_posix(pxdesc);
4081 k = norm_ownadmin_permissions_posix(pxdesc,
4082 0, pxdesc->acccnt, 0);
4083 pxdesc->acccnt = k;
4084 l = norm_ownadmin_permissions_posix(pxdesc,
4085 pxdesc->firstdef, pxdesc->defcnt, k);
4086 pxdesc->firstdef = k;
4087 pxdesc->defcnt = l;
4089 k = norm_std_permissions_posix(pxdesc,groupowns,
4090 0, pxdesc->acccnt, 0);
4091 pxdesc->acccnt = k;
4092 l = norm_std_permissions_posix(pxdesc,groupowns,
4093 pxdesc->firstdef, pxdesc->defcnt, k);
4094 pxdesc->firstdef = k;
4095 pxdesc->defcnt = l;
4098 if (pxdesc && !ntfs_valid_posix(pxdesc)) {
4101 free(pxdesc);
4102 pxdesc = (struct POSIX_SECURITY*)NULL;
4104 return (pxdesc);