From: Joseph Sutton Date: Mon, 30 Oct 2023 02:03:04 +0000 (+1300) Subject: libcli/security: Add sid_attrs_contains_sid() X-Git-Tag: talloc-2.4.2~927 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=76e27c3ab1349fb4b7a71d7420a4616275befa37;p=thirdparty%2Fsamba.git libcli/security: Add sid_attrs_contains_sid() Signed-off-by: Joseph Sutton Reviewed-by: Andrew Bartlett --- diff --git a/libcli/security/dom_sid.h b/libcli/security/dom_sid.h index 058200d0fe4..343001e87ee 100644 --- a/libcli/security/dom_sid.h +++ b/libcli/security/dom_sid.h @@ -144,6 +144,9 @@ bool is_null_sid(const struct dom_sid *sid); bool sids_contains_sid(const struct dom_sid *sids, const uint32_t num_sids, const struct dom_sid *sid); +bool sid_attrs_contains_sid(const struct auth_SidAttr *sids, + const uint32_t num_sids, + const struct dom_sid *sid); bool sids_contains_sid_attrs(const struct auth_SidAttr *sids, const uint32_t num_sids, const struct dom_sid *sid, diff --git a/libcli/security/util_sid.c b/libcli/security/util_sid.c index 1b2ebaf9c55..54a2fc35fda 100644 --- a/libcli/security/util_sid.c +++ b/libcli/security/util_sid.c @@ -532,6 +532,28 @@ bool sids_contains_sid(const struct dom_sid *sids, return false; } +/** + * Return true if an array of auth_SidAttr contains a certain SID. + * + * @param [in] sids The auth_SidAttr array. + * @param [in] num_sids The size of the auth_SidArray array. + * @param [in] sid The SID in question. + * @returns true if the array contains the SID. + */ +bool sid_attrs_contains_sid(const struct auth_SidAttr *sids, + const uint32_t num_sids, + const struct dom_sid *sid) +{ + uint32_t i; + + for (i = 0; i < num_sids; i++) { + if (dom_sid_equal(&sids[i].sid, sid)) { + return true; + } + } + return false; +} + /** * Return true if an array of auth_SidAttr contains a certain SID with certain * attributes.