diff options
Diffstat (limited to 'source3/utils/net_rpc.c')
-rw-r--r-- | source3/utils/net_rpc.c | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c index 76b53d6113..ff754c33dc 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -1005,26 +1005,32 @@ rpc_user_info_internals(const DOM_SID *domain_sid, const char *domain_name, result = cli_samr_query_usergroups(cli, mem_ctx, &user_pol, &num_rids, &user_gids); - /* Look up rids */ + if (!NT_STATUS_IS_OK(result)) goto done; - rids = TALLOC_ARRAY(mem_ctx, uint32, num_rids); + /* Look up rids */ - for (i = 0; i < num_rids; i++) - rids[i] = user_gids[i].g_rid; + if (rids) { + rids = TALLOC_ARRAY(mem_ctx, uint32, num_rids); - result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol, - flags, num_rids, rids, - &num_names, &names, &name_types); + for (i = 0; i < num_rids; i++) + rids[i] = user_gids[i].g_rid; - if (!NT_STATUS_IS_OK(result)) { - goto done; - } + result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol, + flags, num_rids, rids, + &num_names, &names, &name_types); - /* Display results */ + if (!NT_STATUS_IS_OK(result)) { + goto done; + } - for (i = 0; i < num_names; i++) - printf("%s\n", names[i]); + /* Display results */ + for (i = 0; i < num_names; i++) + printf("%s\n", names[i]); + } + else { + printf("no groups\n"); + } done: return result; } |