summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-02-20 15:15:33 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 10:55:42 -0500
commitdc0ec444833be678c5f8cdcf861a46ebe3d2955c (patch)
treeef9920152c90ce4397d3da1846d96eb8d70e52a2
parent0d63de34ba497a882e2be76188280ee465149658 (diff)
downloadsamba-dc0ec444833be678c5f8cdcf861a46ebe3d2955c.tar.gz
samba-dc0ec444833be678c5f8cdcf861a46ebe3d2955c.tar.bz2
samba-dc0ec444833be678c5f8cdcf861a46ebe3d2955c.zip
r5471: In cli_samr_lookup_rids, flags is not a flags but an array size. W2k3 rejects
everything but 1000 here, so there's no point in exposing that to the caller. Thanks, Volker (This used to be commit 03ec1bd9e54b065c0494bc57a3d78ac0ae28e234)
-rw-r--r--source3/nsswitch/winbindd_rpc.c2
-rw-r--r--source3/rpc_client/cli_samr.c5
-rw-r--r--source3/rpc_server/srv_samr_nt.c7
-rw-r--r--source3/rpcclient/cmd_samr.c4
-rw-r--r--source3/utils/net_rpc.c4
5 files changed, 10 insertions, 12 deletions
diff --git a/source3/nsswitch/winbindd_rpc.c b/source3/nsswitch/winbindd_rpc.c
index b4d8cc3956..42f451c505 100644
--- a/source3/nsswitch/winbindd_rpc.c
+++ b/source3/nsswitch/winbindd_rpc.c
@@ -723,7 +723,7 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain,
/* Lookup a chunk of rids */
result = cli_samr_lookup_rids(hnd->cli, mem_ctx,
- &dom_pol, 1000, /* flags */
+ &dom_pol,
num_lookup_rids,
&rid_mem[i],
&tmp_num_names,
diff --git a/source3/rpc_client/cli_samr.c b/source3/rpc_client/cli_samr.c
index e4c8d46a75..5473168c0f 100644
--- a/source3/rpc_client/cli_samr.c
+++ b/source3/rpc_client/cli_samr.c
@@ -1605,7 +1605,7 @@ NTSTATUS cli_samr_query_dispinfo(struct cli_state *cli, TALLOC_CTX *mem_ctx,
looked up in one packet. */
NTSTATUS cli_samr_lookup_rids(struct cli_state *cli, TALLOC_CTX *mem_ctx,
- POLICY_HND *domain_pol, uint32 flags,
+ POLICY_HND *domain_pol,
uint32 num_rids, uint32 *rids,
uint32 *num_names, char ***names,
uint32 **name_types)
@@ -1633,8 +1633,7 @@ NTSTATUS cli_samr_lookup_rids(struct cli_state *cli, TALLOC_CTX *mem_ctx,
/* Marshall data and send request */
- init_samr_q_lookup_rids(mem_ctx, &q, domain_pol, flags,
- num_rids, rids);
+ init_samr_q_lookup_rids(mem_ctx, &q, domain_pol, 1000, num_rids, rids);
if (!samr_io_q_lookup_rids("", &q, &qbuf, 0) ||
!rpc_api_pipe_req(cli, PI_SAMR, SAMR_LOOKUP_RIDS, &qbuf, &rbuf)) {
diff --git a/source3/rpc_server/srv_samr_nt.c b/source3/rpc_server/srv_samr_nt.c
index 1881bc6e48..8a10fa6d2d 100644
--- a/source3/rpc_server/srv_samr_nt.c
+++ b/source3/rpc_server/srv_samr_nt.c
@@ -1521,9 +1521,10 @@ NTSTATUS _samr_lookup_rids(pipes_struct *p, SAMR_Q_LOOKUP_RIDS *q_u, SAMR_R_LOOK
if (!get_lsa_policy_samr_sid(p, &q_u->pol, &pol_sid, &acc_granted))
return NT_STATUS_INVALID_HANDLE;
- if (num_rids > MAX_SAM_ENTRIES) {
- num_rids = MAX_SAM_ENTRIES;
- DEBUG(5,("_samr_lookup_rids: truncating entries to %d\n", num_rids));
+ if (num_rids > 1000) {
+ DEBUG(0, ("Got asked for %d rids (more than 1000) -- according "
+ "to samba4 idl this is not possible\n", num_rids));
+ return NT_STATUS_UNSUCCESSFUL;
}
if (num_rids) {
diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c
index e8ddfd32d7..d3f8954050 100644
--- a/source3/rpcclient/cmd_samr.c
+++ b/source3/rpcclient/cmd_samr.c
@@ -1394,7 +1394,6 @@ static NTSTATUS cmd_samr_lookup_rids(struct cli_state *cli,
{
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
POLICY_HND connect_pol, domain_pol;
- uint32 flags = 0x000003e8; /* Unknown */
uint32 num_rids, num_names, *rids, *name_types;
char **names;
int i;
@@ -1427,8 +1426,7 @@ static NTSTATUS cmd_samr_lookup_rids(struct cli_state *cli,
for (i = 0; i < argc - 1; i++)
sscanf(argv[i + 1], "%i", &rids[i]);
- result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol,
- flags, num_rids, rids,
+ result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol, num_rids, rids,
&num_names, &names, &name_types);
if (!NT_STATUS_IS_OK(result) &&
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index ff754c33dc..b18d4b0ba5 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -1016,7 +1016,7 @@ rpc_user_info_internals(const DOM_SID *domain_sid, const char *domain_name,
rids[i] = user_gids[i].g_rid;
result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol,
- flags, num_rids, rids,
+ num_rids, rids,
&num_names, &names, &name_types);
if (!NT_STATUS_IS_OK(result)) {
@@ -2148,7 +2148,7 @@ rpc_list_group_members(struct cli_state *cli, TALLOC_CTX *mem_ctx,
if (num_members < this_time)
this_time = num_members;
- result = cli_samr_lookup_rids(cli, mem_ctx, domain_pol, 1000,
+ result = cli_samr_lookup_rids(cli, mem_ctx, domain_pol,
this_time, group_rids,
&num_names, &names, &name_types);