From: Volker Lendecke Date: Sat, 15 Jul 2017 09:06:38 +0000 (+0200) Subject: ntlm_auth: Use libwbclient in get_require_membership_sid() X-Git-Tag: talloc-2.1.11~478 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=403003b528a2445ac128db5750b87de3967372bd;p=thirdparty%2Fsamba.git ntlm_auth: Use libwbclient in get_require_membership_sid() Signed-off-by: Volker Lendecke Reviewed-by: Jeremy Allison --- diff --git a/source3/utils/ntlm_auth.c b/source3/utils/ntlm_auth.c index 932f91c22ad..c0e1c2a6525 100644 --- a/source3/utils/ntlm_auth.c +++ b/source3/utils/ntlm_auth.c @@ -392,8 +392,10 @@ static bool parse_ntlm_auth_domain_user(const char *domuser, fstring domain, } static bool get_require_membership_sid(void) { - struct winbindd_request request; - struct winbindd_response response; + fstring domain, name, sidbuf; + struct wbcDomainSid sid; + enum wbcSidType type; + wbcErr ret; if (!require_membership_of) { return True; @@ -405,25 +407,23 @@ static bool get_require_membership_sid(void) { /* Otherwise, ask winbindd for the name->sid request */ - ZERO_STRUCT(request); - ZERO_STRUCT(response); - - if (!parse_ntlm_auth_domain_user(require_membership_of, - request.data.name.dom_name, - request.data.name.name)) { + if (!parse_ntlm_auth_domain_user(require_membership_of, + domain, name)) { DEBUG(0, ("Could not parse %s into separate domain/name parts!\n", require_membership_of)); return False; } - if (winbindd_request_response(NULL, WINBINDD_LOOKUPNAME, &request, &response) != - NSS_STATUS_SUCCESS) { + ret = wbcLookupName(domain, name, &sid, &type); + if (!WBC_ERROR_IS_OK(ret)) { DEBUG(0, ("Winbindd lookupname failed to resolve %s into a SID!\n", require_membership_of)); return False; } - require_membership_of_sid = SMB_STRDUP(response.data.sid.sid); + wbcSidToStringBuf(&sid, sidbuf, sizeof(sidbuf)); + + require_membership_of_sid = SMB_STRDUP(sidbuf); if (require_membership_of_sid) return True;