Author: jra
Date: 2006-06-09 17:19:59 +0000 (Fri, 09 Jun 2006)
New Revision: 16126

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

Log:
Janitor for Volker..... This looks correct to me.
Jeremy.

Fix a parsing error that became apparent in 'make test': If we have no
group
rids in the info3 we set the array buffer pointer to "1" but fail to
actually
ship the array.

Volker.


Modified:
   branches/SAMBA_3_0/source/rpc_parse/parse_net.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_parse/parse_net.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_net.c     2006-06-09 16:33:46 UTC 
(rev 16125)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_net.c     2006-06-09 17:19:59 UTC 
(rev 16126)
@@ -4,7 +4,7 @@
  *  Copyright (C) Andrew Tridgell              1992-1997,
  *  Copyright (C) Luke Kenneth Casson Leighton 1996-1997,
  *  Copyright (C) Paul Ashton                       1997.
- *  Copyright (C) Jean Fran�ois Micouleau           2002.
+ *  Copyright (C) Jean Francois Micouleau           2002.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -1711,29 +1711,24 @@
        if(!prs_align(ps))
                return False;
 
-       if (usr->num_groups > 0) {
+       if(!prs_uint32("num_groups2   ", ps, depth, &usr->num_groups2))        
/* num groups2 */
+               return False;
 
-               if(!prs_uint32("num_groups2   ", ps, depth, &usr->num_groups2)) 
       /* num groups2 */
-                       return False;
+       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 (usr->num_groups != usr->num_groups2) {
-                       DEBUG(3,("net_io_user_info3: num_groups mismatch! (%d 
!= %d)\n", 
-                       usr->num_groups, usr->num_groups2));
+       if (UNMARSHALLING(ps)) {
+               usr->gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_groups);
+               if (usr->gids == NULL)
                        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;
-               }
-               
+       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 */

Reply via email to