diff options
author | Ingo Molnar <mingo@kernel.org> | 2013-12-19 13:56:10 +0100 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2013-12-19 13:56:10 +0100 |
commit | 3331e924e7c5b98d245531b181551cb2a7380d0e (patch) | |
tree | 25c4432afd79bedc1e8941415166a5cef0c168fb /security/selinux/ss/mls.c | |
parent | fd8526ad14c182605e42b64646344b95befd9f94 (diff) | |
parent | 319e2e3f63c348a9b66db4667efa73178e18b17d (diff) | |
download | op-kernel-dev-3331e924e7c5b98d245531b181551cb2a7380d0e.zip op-kernel-dev-3331e924e7c5b98d245531b181551cb2a7380d0e.tar.gz |
Merge tag 'v3.13-rc4' into x86/mm
Pick up the latest fixes before applying new patches.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'security/selinux/ss/mls.c')
-rw-r--r-- | security/selinux/ss/mls.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/security/selinux/ss/mls.c b/security/selinux/ss/mls.c index 40de8d3..c85bc1e 100644 --- a/security/selinux/ss/mls.c +++ b/security/selinux/ss/mls.c @@ -160,8 +160,6 @@ void mls_sid_to_context(struct context *context, int mls_level_isvalid(struct policydb *p, struct mls_level *l) { struct level_datum *levdatum; - struct ebitmap_node *node; - int i; if (!l->sens || l->sens > p->p_levels.nprim) return 0; @@ -170,19 +168,13 @@ int mls_level_isvalid(struct policydb *p, struct mls_level *l) if (!levdatum) return 0; - ebitmap_for_each_positive_bit(&l->cat, node, i) { - if (i > p->p_cats.nprim) - return 0; - if (!ebitmap_get_bit(&levdatum->level->cat, i)) { - /* - * Category may not be associated with - * sensitivity. - */ - return 0; - } - } - - return 1; + /* + * Return 1 iff all the bits set in l->cat are also be set in + * levdatum->level->cat and no bit in l->cat is larger than + * p->p_cats.nprim. + */ + return ebitmap_contains(&levdatum->level->cat, &l->cat, + p->p_cats.nprim); } int mls_range_isvalid(struct policydb *p, struct mls_range *r) |