svn commit: samba r5473 - in trunk/source: nsswitch rpc_client rpc_server rpcclient utils

vlendec at samba.org vlendec at samba.org
Sun Feb 20 18:42:21 GMT 2005


Author: vlendec
Date: 2005-02-20 18:42:21 +0000 (Sun, 20 Feb 2005)
New Revision: 5473

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5473

Log:
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
Modified:
   trunk/source/nsswitch/winbindd_rpc.c
   trunk/source/rpc_client/cli_samr.c
   trunk/source/rpc_server/srv_samr_nt.c
   trunk/source/rpcclient/cmd_samr.c
   trunk/source/utils/net_rpc.c


Changeset:
Modified: trunk/source/nsswitch/winbindd_rpc.c
===================================================================
--- trunk/source/nsswitch/winbindd_rpc.c	2005-02-20 18:20:51 UTC (rev 5472)
+++ trunk/source/nsswitch/winbindd_rpc.c	2005-02-20 18:42:21 UTC (rev 5473)
@@ -591,7 +591,7 @@
                 /* Lookup a chunk of rids */
 
                 result = rpccli_samr_lookup_rids(cli, mem_ctx,
-						 &dom_pol, 1000, /* flags */
+						 &dom_pol,
 						 num_lookup_rids,
 						 &rid_mem[i],
 						 &tmp_num_names,

Modified: trunk/source/rpc_client/cli_samr.c
===================================================================
--- trunk/source/rpc_client/cli_samr.c	2005-02-20 18:20:51 UTC (rev 5472)
+++ trunk/source/rpc_client/cli_samr.c	2005-02-20 18:42:21 UTC (rev 5473)
@@ -1747,7 +1747,7 @@
 
 NTSTATUS rpccli_samr_lookup_rids(struct rpc_pipe_client *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)
@@ -1775,8 +1775,7 @@
 
 	/* 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_int(cli, SAMR_LOOKUP_RIDS, &qbuf, &rbuf)) {
@@ -1823,13 +1822,13 @@
 }
 
 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)
 {
 	return rpccli_samr_lookup_rids(&cli->pipes[PI_SAMR], mem_ctx, 
-				       domain_pol, flags, num_rids, rids, 
+				       domain_pol, num_rids, rids, 
 				       num_names, names, name_types);
 }
 

Modified: trunk/source/rpc_server/srv_samr_nt.c
===================================================================
--- trunk/source/rpc_server/srv_samr_nt.c	2005-02-20 18:20:51 UTC (rev 5472)
+++ trunk/source/rpc_server/srv_samr_nt.c	2005-02-20 18:42:21 UTC (rev 5473)
@@ -1637,9 +1637,10 @@
 	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) {

Modified: trunk/source/rpcclient/cmd_samr.c
===================================================================
--- trunk/source/rpcclient/cmd_samr.c	2005-02-20 18:20:51 UTC (rev 5472)
+++ trunk/source/rpcclient/cmd_samr.c	2005-02-20 18:42:21 UTC (rev 5473)
@@ -1394,7 +1394,6 @@
 {
 	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 @@
 	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) &&

Modified: trunk/source/utils/net_rpc.c
===================================================================
--- trunk/source/utils/net_rpc.c	2005-02-20 18:20:51 UTC (rev 5472)
+++ trunk/source/utils/net_rpc.c	2005-02-20 18:42:21 UTC (rev 5473)
@@ -1016,7 +1016,7 @@
                 	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 @@
 		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);
 



More information about the samba-cvs mailing list