Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71586
b: refs/heads/master
c: a750e77
h: refs/heads/master
v: v3
  • Loading branch information
Steve French committed Oct 17, 2007
1 parent 19f4350 commit 6cbb8b8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: d5d18501090179d557a4ca976d1c30bfaf5de091
refs/heads/master: a750e77c21d75abd26fbbde2e104fd406566b6e5
19 changes: 10 additions & 9 deletions trunk/fs/cifs/cifsacl.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,23 +95,24 @@ int match_sid(struct cifs_sid *ctsid)
return (-1);
}


/* if the two SIDs (roughly equivalent to a UUID for a user or group) are
the same returns 1, if they do not match returns 0 */
int compare_sids(struct cifs_sid *ctsid, struct cifs_sid *cwsid)
{
int i;
int num_subauth, num_sat, num_saw;

if ((!ctsid) || (!cwsid))
return (-1);
return (0);

/* compare the revision */
if (ctsid->revision != cwsid->revision)
return (-1);
return (0);

/* compare all of the six auth values */
for (i = 0; i < 6; ++i) {
if (ctsid->authority[i] != cwsid->authority[i])
return (-1);
return (0);
}

/* compare all of the subauth values if any */
Expand All @@ -121,11 +122,11 @@ int compare_sids(struct cifs_sid *ctsid, struct cifs_sid *cwsid)
if (num_subauth) {
for (i = 0; i < num_subauth; ++i) {
if (ctsid->sub_auth[i] != cwsid->sub_auth[i])
return (-1);
return (0);
}
}

return (0); /* sids compare/match */
return (1); /* sids compare/match */
}


Expand Down Expand Up @@ -180,7 +181,8 @@ static void parse_ntace(struct cifs_ntace *pntace, char *end_of_acl)



static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl)
static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl,
struct cifs_sid *pownersid, struct cifs_sid pgrpsid)
{
int i;
int num_aces = 0;
Expand Down Expand Up @@ -219,7 +221,6 @@ static void parse_dacl(struct cifs_acl *pdacl, char *end_of_acl)
cifscred->aces = kmalloc(num_aces *
sizeof(struct cifs_ace *), GFP_KERNEL);*/


for (i = 0; i < num_aces; ++i) {
ppntace[i] = (struct cifs_ntace *)
(acl_base + acl_size);
Expand Down Expand Up @@ -317,7 +318,7 @@ int parse_sec_desc(struct cifs_ntsd *pntsd, int acl_len)
if (rc)
return rc;

parse_dacl(dacl_ptr, end_of_acl);
parse_dacl(dacl_ptr, end_of_acl, owner_sid_ptr, group_sid_ptr);

/* cifscred->uid = owner_sid_ptr->rid;
cifscred->gid = group_sid_ptr->rid;
Expand Down
9 changes: 9 additions & 0 deletions trunk/fs/cifs/cifsacl.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,18 @@
#define _CIFSACL_H


#define NUM_AUTHS 6 /* number of authority fields */
#define NUM_SUBAUTHS 5 /* number of sub authority fields */
#define NUM_WK_SIDS 7 /* number of well known sids */
#define SIDNAMELENGTH 20 /* long enough for the ones we care about */

#define READ_BIT 0x4
#define WRITE_BIT 0x2
#define EXEC_BIT 0x1

#define UBITSHIFT 6
#define GBITSHIFT 3

struct cifs_ntsd {
__le16 revision; /* revision level */
__le16 type;
Expand Down
6 changes: 6 additions & 0 deletions trunk/fs/cifs/cifspdu.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,12 @@
/* file_execute, file_read_attributes*/
/* write_dac, and delete. */

#define FILE_READ_RIGHTS (FILE_READ_DATA | FILE_READ_EA | FILE_READ_ATTRIBUTES)
#define FILE_WRITE_RIGHTS (FILE_WRITE_DATA | FILE_APPEND_DATA \
| FILE_WRITE_EA | FILE_WRITE_ATTRIBUTES)
#define FILE_EXEC_RIGHTS (FILE_EXECUTE)


/*
* Invalid readdir handle
*/
Expand Down

0 comments on commit 6cbb8b8

Please sign in to comment.