- goto error;
- }
-
- if (num_rids) {
- sids = TALLOC_ARRAY(tmp_ctx, struct dom_sid, num_rids);
- if (sids == NULL) {
- status = NT_STATUS_NO_MEMORY;
- goto error;
- }
- } else {
- sids = NULL;
- }
-
- for (i = 0; i < num_rids; i++) {
- if (!sid_compose(&sids[i], sid, rids[i])) {
- status = NT_STATUS_INTERNAL_ERROR;
- goto error;
- }
- }
-
- /*
- * We don't run into deadlocks here, cause winbind_off() is called in
- * the main function.
- */
- status = rpccli_lsa_lookup_sids(lsa_pipe,
- tmp_ctx,
- &lsa_policy,
- num_rids,
- sids,
- &domains,
- &names,
- &types);
- if (!NT_STATUS_IS_OK(status) &&
- !NT_STATUS_EQUAL(status, STATUS_SOME_UNMAPPED)) {
- DEBUG(2,("rids_to_names: failed to lookup sids: %s\n",
- nt_errstr(status)));
- goto error;