diff options
author | Christian Göttsche <cgzones@googlemail.com> | 2023-07-18 20:06:27 +0200 |
---|---|---|
committer | Paul Moore <paul@paul-moore.com> | 2023-07-19 11:04:28 -0400 |
commit | 08a12b39e289fedf755afbc81de44a5cd1286b4b (patch) | |
tree | 54a223508300e5a7b350d67ad53e931d836a44fa /security/selinux/ss/avtab.c | |
parent | 90aa4f5e92f2797c3c86e05f588ab277b0e0ba39 (diff) | |
download | lwn-08a12b39e289fedf755afbc81de44a5cd1286b4b.tar.gz lwn-08a12b39e289fedf755afbc81de44a5cd1286b4b.zip |
selinux: drop avtab_search()
avtab_search() shares the same logic with avtab_search_node(), except
that it returns, if found, a pointer to the struct avtab_node member
datum instead of the node itself. Since the member is an embedded
struct, and not a pointer, the returned value of avtab_search() and
avtab_search_node() will always in unison either be NULL or non-NULL.
Drop avtab_search() and replace its calls by avtab_search_node() to
deduplicate logic and adopt the only caller caring for the type of
the returned value accordingly.
Signed-off-by: Christian Göttsche <cgzones@googlemail.com>
Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'security/selinux/ss/avtab.c')
-rw-r--r-- | security/selinux/ss/avtab.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/security/selinux/ss/avtab.c b/security/selinux/ss/avtab.c index 8d7c14ca27a2..5fd439c5b8a4 100644 --- a/security/selinux/ss/avtab.c +++ b/security/selinux/ss/avtab.c @@ -180,38 +180,6 @@ struct avtab_node *avtab_insert_nonunique(struct avtab *h, return avtab_insert_node(h, hvalue, prev, key, datum); } -struct avtab_datum *avtab_search(struct avtab *h, const struct avtab_key *key) -{ - int hvalue; - struct avtab_node *cur; - u16 specified = key->specified & ~(AVTAB_ENABLED|AVTAB_ENABLED_OLD); - - if (!h || !h->nslot) - return NULL; - - hvalue = avtab_hash(key, h->mask); - for (cur = h->htable[hvalue]; cur; - cur = cur->next) { - if (key->source_type == cur->key.source_type && - key->target_type == cur->key.target_type && - key->target_class == cur->key.target_class && - (specified & cur->key.specified)) - return &cur->datum; - - if (key->source_type < cur->key.source_type) - break; - if (key->source_type == cur->key.source_type && - key->target_type < cur->key.target_type) - break; - if (key->source_type == cur->key.source_type && - key->target_type == cur->key.target_type && - key->target_class < cur->key.target_class) - break; - } - - return NULL; -} - /* This search function returns a node pointer, and can be used in * conjunction with avtab_search_next_node() */ |