From: Stefan Metzmacher Date: Fri, 25 Mar 2022 13:23:45 +0000 (+0100) Subject: libcli/security: simplify sddl_encode_sid() X-Git-Tag: talloc-2.4.1~1370 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bd327f7d7a0d5f3377129ceb7f74e9dcf40587f3;p=thirdparty%2Fsamba.git libcli/security: simplify sddl_encode_sid() We should walk the sid_codes array just once. This makes further changes easier... Signed-off-by: Stefan Metzmacher Reviewed-by: Andrew Bartlett Reviewed-by: Joseph Sutton --- diff --git a/libcli/security/sddl.c b/libcli/security/sddl.c index 20d5553ad43..85feae305e1 100644 --- a/libcli/security/sddl.c +++ b/libcli/security/sddl.c @@ -556,35 +556,39 @@ failed: static char *sddl_encode_sid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid, struct sddl_transition_state *state) { + bool in_domain = dom_sid_in_domain(state->domain_sid, sid); + struct dom_sid_buf buf; + const char *sidstr = dom_sid_str_buf(sid, &buf); + uint32_t rid = 0; size_t i; - char *sidstr; - sidstr = dom_sid_string(mem_ctx, sid); - if (sidstr == NULL) return NULL; + if (sid->num_auths > 1) { + rid = sid->sub_auths[sid->num_auths-1]; + } + + for (i=0;idomain_sid, sid)) { - uint32_t rid = sid->sub_auths[sid->num_auths-1]; - for (;i