From 89c56492a86fb02b2045182490b93f17a475f03d Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Fri, 4 Dec 1998 21:48:06 +0000 Subject: - oops, i got "add alias member" and "delete alias member" swapped. - samr_enum_dom_users, the first 4 bytes is some sort of garbage, nt5-beta2 clears them out to zeros whereas nt4 does not. fixed bug where we were assuming that the first 4 bytes of a response _had_ to be non-zero. - cli_lsarpc.c: forgot to append the rid on the lsa_lookup_names() client call. - added in "addaliasmem" and "addgroupmem" commands. the addaliasmem command actually turned out to be a "delaliasmem" :-) :-) - parse_lsa.c: moved assert array check to after the size of useable array space is set... (This used to be commit 165b15a8cacc4bc7cf8cc0b9aaabb6b92cef7fdb) --- source3/rpcclient/cmd_samr.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'source3/rpcclient/cmd_samr.c') diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c index 13e0829613..ae3ef548c6 100644 --- a/source3/rpcclient/cmd_samr.c +++ b/source3/rpcclient/cmd_samr.c @@ -208,9 +208,9 @@ void cmd_sam_add_aliasmem(struct client_info *info) fprintf(out_hnd, "addaliasmem: [member sid1] [member sid2] ...\n"); return; } - alias_rid = strtoul(tmp, (char**)NULL, 10); + alias_rid = get_number(tmp); - fprintf(out_hnd, "SAM Create Domain Alias\n"); + fprintf(out_hnd, "SAM Domain Alias Member\n"); /* open SAMR session. negotiate credentials */ res = res ? cli_nt_session_open(smb_cli, PIPE_SAMR) : False; @@ -385,9 +385,9 @@ void cmd_sam_add_groupmem(struct client_info *info) fprintf(out_hnd, "addgroupmem: [member rid1] [member rid2] ...\n"); return; } - group_rid = strtoul(tmp, (char**)NULL, 10); + group_rid = get_number(tmp); - fprintf(out_hnd, "SAM Create Domain Group\n"); + fprintf(out_hnd, "SAM Add Domain Group member\n"); /* open SAMR session. negotiate credentials */ res = res ? cli_nt_session_open(smb_cli, PIPE_SAMR) : False; @@ -959,7 +959,7 @@ void cmd_sam_enum_aliases(struct client_info *info) DOM_SID sid1; BOOL res = True; BOOL request_member_info = False; - uint32 flags = 0x304; /* absolutely no idea. */ + uint32 flags = 0x200003f3; /* absolutely no idea. */ fstring tmp; uint32 alias_idx; @@ -1049,15 +1049,15 @@ void cmd_sam_enum_aliases(struct client_info *info) uint16 old_fnum = smb_cli->nt_pipe_fnum; if (num_aliases != 0) - { + { sids = malloc(num_aliases * sizeof(DOM_SID*)); - } + } res3 = sids != NULL; if (res3) - { + { for (i = 0; i < num_aliases; i++) - { + { sids[i] = &sid_mem[i].sid; } } @@ -1083,7 +1083,7 @@ void cmd_sam_enum_aliases(struct client_info *info) smb_cli->nt_pipe_fnum = old_fnum; if (res4 && names != NULL) - { + { display_alias_members(out_hnd, ACTION_HEADER , num_names, names); display_alias_members(out_hnd, ACTION_ENUMERATE, num_names, names); display_alias_members(out_hnd, ACTION_FOOTER , num_names, names); @@ -1104,8 +1104,8 @@ void cmd_sam_enum_aliases(struct client_info *info) free(sids); } } - } - } + } + } res = res ? samr_close(smb_cli, &info->dom.samr_pol_connect) : False; -- cgit