cifs: make compare_sids static
..nothing outside of cifsacl.c calls it. Also fix the incorrect comment on the function. It returns 0 when they match. Reviewed-by: Shirish Pargaonkar <shirishpargaonkar@gmail.com> Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <smfrench@gmail.com>
This commit is contained in:
parent
852e22950d
commit
436bb435fc
@ -224,6 +224,56 @@ sid_to_str(struct cifs_sid *sidptr, char *sidstr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* if the two SIDs (roughly equivalent to a UUID for a user or group) are
|
||||||
|
* the same returns zero, if they do not match returns non-zero.
|
||||||
|
*/
|
||||||
|
static int
|
||||||
|
compare_sids(const struct cifs_sid *ctsid, const struct cifs_sid *cwsid)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
int num_subauth, num_sat, num_saw;
|
||||||
|
|
||||||
|
if ((!ctsid) || (!cwsid))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
/* compare the revision */
|
||||||
|
if (ctsid->revision != cwsid->revision) {
|
||||||
|
if (ctsid->revision > cwsid->revision)
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* compare all of the six auth values */
|
||||||
|
for (i = 0; i < NUM_AUTHS; ++i) {
|
||||||
|
if (ctsid->authority[i] != cwsid->authority[i]) {
|
||||||
|
if (ctsid->authority[i] > cwsid->authority[i])
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* compare all of the subauth values if any */
|
||||||
|
num_sat = ctsid->num_subauth;
|
||||||
|
num_saw = cwsid->num_subauth;
|
||||||
|
num_subauth = num_sat < num_saw ? num_sat : num_saw;
|
||||||
|
if (num_subauth) {
|
||||||
|
for (i = 0; i < num_subauth; ++i) {
|
||||||
|
if (ctsid->sub_auth[i] != cwsid->sub_auth[i]) {
|
||||||
|
if (le32_to_cpu(ctsid->sub_auth[i]) >
|
||||||
|
le32_to_cpu(cwsid->sub_auth[i]))
|
||||||
|
return 1;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0; /* sids compare/match */
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
cifs_copy_sid(struct cifs_sid *dst, const struct cifs_sid *src)
|
cifs_copy_sid(struct cifs_sid *dst, const struct cifs_sid *src)
|
||||||
{
|
{
|
||||||
@ -630,54 +680,6 @@ cifs_destroy_idmaptrees(void)
|
|||||||
spin_unlock(&gidsidlock);
|
spin_unlock(&gidsidlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 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(const struct cifs_sid *ctsid, const struct cifs_sid *cwsid)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
int num_subauth, num_sat, num_saw;
|
|
||||||
|
|
||||||
if ((!ctsid) || (!cwsid))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* compare the revision */
|
|
||||||
if (ctsid->revision != cwsid->revision) {
|
|
||||||
if (ctsid->revision > cwsid->revision)
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* compare all of the six auth values */
|
|
||||||
for (i = 0; i < NUM_AUTHS; ++i) {
|
|
||||||
if (ctsid->authority[i] != cwsid->authority[i]) {
|
|
||||||
if (ctsid->authority[i] > cwsid->authority[i])
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* compare all of the subauth values if any */
|
|
||||||
num_sat = ctsid->num_subauth;
|
|
||||||
num_saw = cwsid->num_subauth;
|
|
||||||
num_subauth = num_sat < num_saw ? num_sat : num_saw;
|
|
||||||
if (num_subauth) {
|
|
||||||
for (i = 0; i < num_subauth; ++i) {
|
|
||||||
if (ctsid->sub_auth[i] != cwsid->sub_auth[i]) {
|
|
||||||
if (le32_to_cpu(ctsid->sub_auth[i]) >
|
|
||||||
le32_to_cpu(cwsid->sub_auth[i]))
|
|
||||||
return 1;
|
|
||||||
else
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0; /* sids compare/match */
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* copy ntsd, owner sid, and group sid from a security descriptor to another */
|
/* copy ntsd, owner sid, and group sid from a security descriptor to another */
|
||||||
static void copy_sec_desc(const struct cifs_ntsd *pntsd,
|
static void copy_sec_desc(const struct cifs_ntsd *pntsd,
|
||||||
struct cifs_ntsd *pnntsd, __u32 sidsoffset)
|
struct cifs_ntsd *pnntsd, __u32 sidsoffset)
|
||||||
|
@ -98,6 +98,4 @@ extern struct key_type cifs_idmap_key_type;
|
|||||||
extern const struct cred *root_cred;
|
extern const struct cred *root_cred;
|
||||||
#endif /* KERNEL */
|
#endif /* KERNEL */
|
||||||
|
|
||||||
extern int compare_sids(const struct cifs_sid *, const struct cifs_sid *);
|
|
||||||
|
|
||||||
#endif /* _CIFSACL_H */
|
#endif /* _CIFSACL_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user