diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c index 59ca3b0..cc8b09a 100644 --- a/source3/rpc_client/cli_lsarpc.c +++ b/source3/rpc_client/cli_lsarpc.c @@ -169,7 +169,9 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, struct policy_handle *pol, int num_sids, const struct dom_sid *sids, + TALLOC_CTX *domains_ctx, char **domains, + TALLOC_CTX *names_ctx, char **names, enum lsa_SidType *types, bool use_lookupsids3, @@ -287,7 +289,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, name = lsa_names.names[i].name.string; if (name) { - (names)[i] = talloc_strdup(names, name); + (names)[i] = talloc_strdup(names_ctx, name); if ((names)[i] == NULL) { DEBUG(0, ("cli_lsa_lookup_sids_noalloc(): out of memory\n")); *presult = NT_STATUS_UNSUCCESSFUL; @@ -296,7 +298,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, } else { (names)[i] = NULL; } - domains[i] = talloc_strdup(domains, + domains[i] = talloc_strdup(domains_ctx, dom_name ? dom_name : ""); (types)[i] = lsa_names.names[i].sid_type; if ((domains)[i] == NULL) { @@ -398,7 +400,9 @@ static NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, hunk_num_sids, hunk_sids, hunk_domains, + domains, hunk_names, + names, hunk_types, use_lookupsids3, &hunk_result); @@ -433,7 +437,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, } sids_left -= hunk_num_sids; - sids_processed += hunk_num_sids; /* only used in DEBUG */ + sids_processed += hunk_num_sids; hunk_sids += hunk_num_sids; hunk_domains += hunk_num_sids; hunk_names += hunk_num_sids;