char *full_name = NULL;
NTSTATUS name_map_status = NT_STATUS_UNSUCCESSFUL;
char *mapped_name = NULL;
+ const char **returned_domain = NULL;
if (*name == NULL || **name=='\0') {
full_name = talloc_asprintf(mem_ctx, "%s", *domain_name);
full_name?full_name:"", *domain_name ));
result = winbindd_lookup_names(mem_ctx, domain, 1,
- (const char **)&full_name, NULL,
+ (const char **)&full_name,
+ &returned_domain,
&sids, &types);
if (!NT_STATUS_IS_OK(result))
return result;
/* Return rid and type if lookup successful */
+ if ((returned_domain != NULL) && (domain_name != NULL)) {
+ *domain_name = talloc_strdup(mem_ctx, *returned_domain);
+ if (*domain_name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+
sid_copy(sid, &sids[0]);
*type = types[0];