diff options
author | Sumit Bose <sbose@redhat.com> | 2012-08-27 13:54:08 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-09-06 09:27:18 +0200 |
commit | 25e0937ad27994ee3da5c9c4520515a6fd7b2358 (patch) | |
tree | ef39fcee2f27d7ba359b37272694066880e083d8 | |
parent | 7599a8464dc948c7f0a353fdf3f67b73acbcc467 (diff) | |
download | freeipa.git-25e0937ad27994ee3da5c9c4520515a6fd7b2358.tar.gz freeipa.git-25e0937ad27994ee3da5c9c4520515a6fd7b2358.tar.xz freeipa.git-25e0937ad27994ee3da5c9c4520515a6fd7b2358.zip |
ipasam: replace sid_compose()
-rw-r--r-- | daemons/ipa-sam/ipa_sam.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/daemons/ipa-sam/ipa_sam.c b/daemons/ipa-sam/ipa_sam.c index e7774f5b..3f656246 100644 --- a/daemons/ipa-sam/ipa_sam.c +++ b/daemons/ipa-sam/ipa_sam.c @@ -87,7 +87,6 @@ bool sid_check_is_builtin(const struct dom_sid *sid); /* available in libpdb.so bool sid_check_is_our_sam(const struct dom_sid *sid); bool sid_linearize(char *outbuf, size_t len, const struct dom_sid *sid); /* available in libsmbconf.so */ bool string_to_sid(struct dom_sid *sidout, const char *sidstr); /* available in libsecurity.so */ -bool sid_compose(struct dom_sid *dst, const struct dom_sid *domain_sid, uint32_t rid); /* available in libsecurity.so */ int dom_sid_compare_domain(const struct dom_sid *sid1, const struct dom_sid *sid2); /* available in libsecurity.so */ char *sid_string_talloc(TALLOC_CTX *mem_ctx, const struct dom_sid *sid); /* available in libsmbconf.so */ char *sid_string_dbg(const struct dom_sid *sid); /* available in libsmbconf.so */ @@ -180,6 +179,20 @@ static void sid_copy(struct dom_sid *dst, const struct dom_sid *src) } } +static bool sid_compose(struct dom_sid *dst, const struct dom_sid *dom_sid, + uint32_t rid) +{ + if (dom_sid->num_auths >= 15) { + return false; + } + + sid_copy(dst, dom_sid); + + dst->sub_auths[dst->num_auths++] = rid; + + return true; +} + static bool strnequal(const char *s1, const char *s2, size_t n) { if (s1 == s2) { return true; |