diff options
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 40de8d3f208e..c85bc1ec040c 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, | |||
160 | int mls_level_isvalid(struct policydb *p, struct mls_level *l) | 160 | int mls_level_isvalid(struct policydb *p, struct mls_level *l) |
161 | { | 161 | { |
162 | struct level_datum *levdatum; | 162 | struct level_datum *levdatum; |
163 | struct ebitmap_node *node; | ||
164 | int i; | ||
165 | 163 | ||
166 | if (!l->sens || l->sens > p->p_levels.nprim) | 164 | if (!l->sens || l->sens > p->p_levels.nprim) |
167 | return 0; | 165 | return 0; |
@@ -170,19 +168,13 @@ int mls_level_isvalid(struct policydb *p, struct mls_level *l) | |||
170 | if (!levdatum) | 168 | if (!levdatum) |
171 | return 0; | 169 | return 0; |
172 | 170 | ||
173 | ebitmap_for_each_positive_bit(&l->cat, node, i) { | 171 | /* |
174 | if (i > p->p_cats.nprim) | 172 | * Return 1 iff all the bits set in l->cat are also be set in |
175 | return 0; | 173 | * levdatum->level->cat and no bit in l->cat is larger than |
176 | if (!ebitmap_get_bit(&levdatum->level->cat, i)) { | 174 | * p->p_cats.nprim. |
177 | /* | 175 | */ |
178 | * Category may not be associated with | 176 | return ebitmap_contains(&levdatum->level->cat, &l->cat, |
179 | * sensitivity. | 177 | p->p_cats.nprim); |
180 | */ | ||
181 | return 0; | ||
182 | } | ||
183 | } | ||
184 | |||
185 | return 1; | ||
186 | } | 178 | } |
187 | 179 | ||
188 | int mls_range_isvalid(struct policydb *p, struct mls_range *r) | 180 | int mls_range_isvalid(struct policydb *p, struct mls_range *r) |