Merge tag 'selinux-pr-20200803' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / security / selinux / ss / mls.c
index cd8734f25b39bf66b1b043bd721e9952db903ff7..408d306895f8fc5e285ff6a58ddffb2a5ed63bfe 100644 (file)
@@ -165,8 +165,8 @@ int mls_level_isvalid(struct policydb *p, struct mls_level *l)
 
        if (!l->sens || l->sens > p->p_levels.nprim)
                return 0;
-       levdatum = hashtab_search(&p->p_levels.table,
-                                 sym_name(p, SYM_LEVELS, l->sens - 1));
+       levdatum = symtab_search(&p->p_levels,
+                                sym_name(p, SYM_LEVELS, l->sens - 1));
        if (!levdatum)
                return 0;
 
@@ -293,7 +293,7 @@ int mls_context_to_sid(struct policydb *pol,
                        *(next_cat++) = '\0';
 
                /* Parse sensitivity. */
-               levdatum = hashtab_search(&pol->p_levels.table, sensitivity);
+               levdatum = symtab_search(&pol->p_levels, sensitivity);
                if (!levdatum)
                        return -EINVAL;
                context->range.level[l].sens = levdatum->level->sens;
@@ -312,7 +312,7 @@ int mls_context_to_sid(struct policydb *pol,
                                *rngptr++ = '\0';
                        }
 
-                       catdatum = hashtab_search(&pol->p_cats.table, cur_cat);
+                       catdatum = symtab_search(&pol->p_cats, cur_cat);
                        if (!catdatum)
                                return -EINVAL;
 
@@ -325,7 +325,7 @@ int mls_context_to_sid(struct policydb *pol,
                        if (rngptr == NULL)
                                continue;
 
-                       rngdatum = hashtab_search(&pol->p_cats.table, rngptr);
+                       rngdatum = symtab_search(&pol->p_cats, rngptr);
                        if (!rngdatum)
                                return -EINVAL;
 
@@ -458,9 +458,10 @@ int mls_convert_context(struct policydb *oldp,
                return 0;
 
        for (l = 0; l < 2; l++) {
-               levdatum = hashtab_search(&newp->p_levels.table,
-                                         sym_name(oldp, SYM_LEVELS,
-                                                  oldc->range.level[l].sens - 1));
+               char *name = sym_name(oldp, SYM_LEVELS,
+                                     oldc->range.level[l].sens - 1);
+
+               levdatum = symtab_search(&newp->p_levels, name);
 
                if (!levdatum)
                        return -EINVAL;
@@ -470,8 +471,8 @@ int mls_convert_context(struct policydb *oldp,
                                              node, i) {
                        int rc;
 
-                       catdatum = hashtab_search(&newp->p_cats.table,
-                                                 sym_name(oldp, SYM_CATS, i));
+                       catdatum = symtab_search(&newp->p_cats,
+                                                sym_name(oldp, SYM_CATS, i));
                        if (!catdatum)
                                return -EINVAL;
                        rc = ebitmap_set_bit(&newc->range.level[l].cat,
@@ -506,7 +507,7 @@ int mls_compute_sid(struct policydb *p,
                rtr.source_type = scontext->type;
                rtr.target_type = tcontext->type;
                rtr.target_class = tclass;
-               r = hashtab_search(&p->range_tr, &rtr);
+               r = policydb_rangetr_search(p, &rtr);
                if (r)
                        return mls_range_set(newcontext, r);