r5471: In cli_samr_lookup_rids, flags is not a flags but an array size. W2k3 rejects
authorVolker Lendecke <vlendec@samba.org>
Sun, 20 Feb 2005 15:15:33 +0000 (15:15 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 15:55:42 +0000 (10:55 -0500)
everything but 1000 here, so there's no point in exposing that to the caller.

Thanks,

Volker

source/nsswitch/winbindd_rpc.c
source/rpc_client/cli_samr.c
source/rpc_server/srv_samr_nt.c
source/rpcclient/cmd_samr.c
source/utils/net_rpc.c

index b4d8cc3956e03d8870ad315acddb6403524c00e9..42f451c50515e12a260ef93fe05e04bde9ccc38e 100644 (file)
@@ -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,
index e4c8d46a75e93013efd4a10cb041fb8cc82533be..5473168c0f8281da92a079e0f63f086be3b8cd6c 100644 (file)
@@ -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)) {
index 1881bc6e48e8560d5575683389adcca314333523..8a10fa6d2da3812c9f575da8edcb432f3ad1b63b 100644 (file)
@@ -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) {
index e8ddfd32d774b461f2d430bd40f730e752886969..d3f8954050201430a0e047c5080d34699faf59c1 100644 (file)
@@ -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) &&
index ff754c33dc58056cddb714baec502e14e0b727f7..b18d4b0ba5e680930f8c8eeca83dc8ecfeb11be9 100644 (file)
@@ -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);