Merge tag 'selinux-pr-20200601' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / security / selinux / ss / context.h
index 3ba044fe02ed49d7948674d333a83dfd989d16bf..62990aa1ec9e7178a046a1de5067f35a61629983 100644 (file)
@@ -31,7 +31,6 @@ struct context {
        u32 len;        /* length of string in bytes */
        struct mls_range range;
        char *str;      /* string representation if context cannot be mapped. */
-       u32 hash;       /* a hash of the string representation */
 };
 
 static inline void mls_context_init(struct context *c)
@@ -169,13 +168,12 @@ static inline int context_cpy(struct context *dst, struct context *src)
                kfree(dst->str);
                return rc;
        }
-       dst->hash = src->hash;
        return 0;
 }
 
 static inline void context_destroy(struct context *c)
 {
-       c->user = c->role = c->type = c->hash = 0;
+       c->user = c->role = c->type = 0;
        kfree(c->str);
        c->str = NULL;
        c->len = 0;
@@ -184,8 +182,6 @@ static inline void context_destroy(struct context *c)
 
 static inline int context_cmp(struct context *c1, struct context *c2)
 {
-       if (c1->hash && c2->hash && (c1->hash != c2->hash))
-               return 0;
        if (c1->len && c2->len)
                return (c1->len == c2->len && !strcmp(c1->str, c2->str));
        if (c1->len || c2->len)
@@ -196,10 +192,7 @@ static inline int context_cmp(struct context *c1, struct context *c2)
                mls_context_cmp(c1, c2));
 }
 
-static inline unsigned int context_compute_hash(const char *s)
-{
-       return full_name_hash(NULL, s, strlen(s));
-}
+u32 context_compute_hash(const struct context *c);
 
 #endif /* _SS_CONTEXT_H_ */