svn commit: samba r10785 - in branches/SAMBA_3_0_RELEASE/source/rpc_parse: .

jerry at samba.org jerry at samba.org
Thu Oct 6 18:17:10 GMT 2005


Author: jerry
Date: 2005-10-06 18:17:09 +0000 (Thu, 06 Oct 2005)
New Revision: 10785

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

Log:
adding gd's group parsing fix (current up to r10784)
Modified:
   branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_net.c


Changeset:
Modified: branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_net.c
===================================================================
--- branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_net.c	2005-10-06 18:10:23 UTC (rev 10784)
+++ branches/SAMBA_3_0_RELEASE/source/rpc_parse/parse_net.c	2005-10-06 18:17:09 UTC (rev 10785)
@@ -1622,18 +1622,30 @@
 
 	if(!prs_align(ps))
 		return False;
-	if(!prs_uint32("num_groups2   ", ps, depth, &usr->num_groups2))        /* num groups */
-		return False;
 
-	if (UNMARSHALLING(ps) && usr->num_groups2 > 0) {
-		usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups2);
-		if (usr->gids == NULL)
+	if (usr->num_groups > 0) {
+
+		if(!prs_uint32("num_groups2   ", ps, depth, &usr->num_groups2))        /* num groups2 */
 			return False;
-	}
 
-	for (i = 0; i < usr->num_groups2; i++) {
-		if(!smb_io_gid("", &usr->gids[i], ps, depth)) /* group info */
+		if (usr->num_groups != usr->num_groups2) {
+			DEBUG(3,("net_io_user_info3: num_groups mismatch! (%d != %d)\n", 
+			usr->num_groups, usr->num_groups2));
 			return False;
+		}
+
+
+		if (UNMARSHALLING(ps)) {
+			usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
+			if (usr->gids == NULL)
+				return False;
+		}
+
+		for (i = 0; i < usr->num_groups; i++) {
+			if(!smb_io_gid("", &usr->gids[i], ps, depth)) /* group info */
+				return False;
+		}
+		
 	}
 
 	if(!smb_io_unistr2("uni_logon_srv", &usr->uni_logon_srv, usr->hdr_logon_srv.buffer, ps, depth)) /* logon server unicode string */



More information about the samba-cvs mailing list