Index: rpc_parse/parse_net.c =================================================================== --- rpc_parse/parse_net.c (revision 4932) +++ rpc_parse/parse_net.c (working copy) @@ -1646,27 +1646,23 @@ if(!smb_io_dom_sid2("", &usr->dom_sid, ps, depth)) /* domain SID */ return False; - if (usr->num_other_sids) { + if (usr->buffer_other_sids) { + uint32 num_other_sids; + + if (!prs_uint32("num_other_sids", ps, depth, + &num_other_sids)) + return False; + + if (num_other_sids != usr->num_other_sids) + return False; + if (UNMARSHALLING(ps)) { usr->other_sids = PRS_ALLOC_MEM(ps, DOM_SID2, usr->num_other_sids); if (usr->other_sids == NULL) return False; } - if(!prs_uint32("num_other_groups", ps, depth, &usr->num_other_groups)) - return False; - - if (UNMARSHALLING(ps) && usr->num_other_groups > 0) { - usr->other_gids = PRS_ALLOC_MEM(ps, DOM_GID, usr->num_other_groups); - if (usr->other_gids == NULL) - return False; - } - - for (i = 0; i < usr->num_other_groups; i++) { - if(!smb_io_gid("", &usr->other_gids[i], ps, depth)) /* other GIDs */ - return False; - } for (i = 0; i < usr->num_other_sids; i++) { if(!smb_io_dom_sid2("", &usr->other_sids[i], ps, depth)) /* other domain SIDs */ return False; Index: include/rpc_netlogon.h =================================================================== --- include/rpc_netlogon.h (revision 4932) +++ include/rpc_netlogon.h (working copy) @@ -190,8 +190,6 @@ DOM_SID2 dom_sid; /* domain SID */ - uint32 num_other_groups; /* other groups */ - DOM_GID *other_gids; /* group info */ DOM_SID2 *other_sids; /* foreign/trusted domain SIDs */ } NET_USER_INFO_3;