From 7fc19747ef346df9cc72bb516b45a8309f462dd8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 15 Jan 2018 12:57:11 +0100 Subject: [PATCH] s3:rpc_client: pass down lsa_LookupNamesLevel to dcerpc_lsa_lookup_sids_generic() Bug: https://bugzilla.samba.org/show_bug.cgi?id=13236 Signed-off-by: Stefan Metzmacher Reviewed-by: Ralph Boehme --- source3/rpc_client/cli_lsarpc.c | 10 +++++++++- source3/rpc_client/cli_lsarpc.h | 1 + source3/winbindd/winbindd_msrpc.c | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c index 41c1ef482f4..65c6ca04d50 100644 --- a/source3/rpc_client/cli_lsarpc.c +++ b/source3/rpc_client/cli_lsarpc.c @@ -172,6 +172,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, struct policy_handle *pol, int num_sids, const struct dom_sid *sids, + enum lsa_LookupNamesLevel level, char **domains, char **names, enum lsa_SidType *types, @@ -183,7 +184,6 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, struct lsa_SidArray sid_array; struct lsa_RefDomainList *ref_domains = NULL; struct lsa_TransNameArray lsa_names; - enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL; uint32_t count = 0; int i; @@ -348,6 +348,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, struct policy_handle *pol, int num_sids, const struct dom_sid *sids, + enum lsa_LookupNamesLevel level, char ***pdomains, char ***pnames, enum lsa_SidType **ptypes, @@ -414,6 +415,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, pol, hunk_num_sids, hunk_sids, + level, hunk_domains, hunk_names, hunk_types, @@ -489,11 +491,13 @@ NTSTATUS dcerpc_lsa_lookup_sids(struct dcerpc_binding_handle *h, enum lsa_SidType **ptypes, NTSTATUS *result) { + enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL; return dcerpc_lsa_lookup_sids_generic(h, mem_ctx, pol, num_sids, sids, + level, pdomains, pnames, ptypes, @@ -512,12 +516,14 @@ NTSTATUS rpccli_lsa_lookup_sids(struct rpc_pipe_client *cli, { NTSTATUS status; NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL; status = dcerpc_lsa_lookup_sids_generic(cli->binding_handle, mem_ctx, pol, num_sids, sids, + level, pdomains, pnames, ptypes, @@ -540,11 +546,13 @@ NTSTATUS dcerpc_lsa_lookup_sids3(struct dcerpc_binding_handle *h, enum lsa_SidType **ptypes, NTSTATUS *result) { + enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL; return dcerpc_lsa_lookup_sids_generic(h, mem_ctx, pol, num_sids, sids, + level, pdomains, pnames, ptypes, diff --git a/source3/rpc_client/cli_lsarpc.h b/source3/rpc_client/cli_lsarpc.h index 4f9464d5b05..f716b049e12 100644 --- a/source3/rpc_client/cli_lsarpc.h +++ b/source3/rpc_client/cli_lsarpc.h @@ -130,6 +130,7 @@ NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, struct policy_handle *pol, int num_sids, const struct dom_sid *sids, + enum lsa_LookupNamesLevel level, char ***pdomains, char ***pnames, enum lsa_SidType **ptypes, diff --git a/source3/winbindd/winbindd_msrpc.c b/source3/winbindd/winbindd_msrpc.c index 9bf4354f4e3..bc27a39c08f 100644 --- a/source3/winbindd/winbindd_msrpc.c +++ b/source3/winbindd/winbindd_msrpc.c @@ -999,6 +999,7 @@ NTSTATUS winbindd_lookup_sids(TALLOC_CTX *mem_ctx, unsigned int orig_timeout; bool use_lookupsids3 = false; bool retried = false; + enum lsa_LookupNamesLevel level = LSA_LOOKUP_NAMES_ALL; connect: status = cm_connect_lsat(domain, mem_ctx, &cli, &lsa_policy); @@ -1024,6 +1025,7 @@ NTSTATUS winbindd_lookup_sids(TALLOC_CTX *mem_ctx, &lsa_policy, num_sids, sids, + level, domains, names, types, -- 2.34.1