Commit 4419aae1 authored by Eric Paris's avatar Eric Paris Committed by James Morris

SELinux: deterministic ordering of range transition rules

Range transition rules are placed in the hash table in an (almost)
arbitrary order.  This patch inserts them in a fixed order to make policy
retrival more predictable.
Signed-off-by: default avatarEric Paris <eparis@redhat.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent b28efd54
...@@ -185,9 +185,19 @@ static u32 rangetr_hash(struct hashtab *h, const void *k) ...@@ -185,9 +185,19 @@ static u32 rangetr_hash(struct hashtab *h, const void *k)
static int rangetr_cmp(struct hashtab *h, const void *k1, const void *k2) static int rangetr_cmp(struct hashtab *h, const void *k1, const void *k2)
{ {
const struct range_trans *key1 = k1, *key2 = k2; const struct range_trans *key1 = k1, *key2 = k2;
return (key1->source_type != key2->source_type || int v;
key1->target_type != key2->target_type ||
key1->target_class != key2->target_class); v = key1->source_type - key2->source_type;
if (v)
return v;
v = key1->target_type - key2->target_type;
if (v)
return v;
v = key1->target_class - key2->target_class;
return v;
} }
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment