Files
@ 961afdf3fd75
Branch filter:
Location: ohnobinki_overlay/net-fs/samba-tng/files/0.4.99/04_all_0.4.99-netlogon-more-groups.diff
961afdf3fd75
4.1 KiB
text/x-diff
media-libs/libdvdnav: Remove broken/out-of-date media-libs/libdvdnav ebuilds.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | Index: include/rpc_netlogon.h
===================================================================
RCS file: /home/cvsroot/dcerpc/tng/source/include/rpc_netlogon.h,v
retrieving revision 1.10
diff -u -p -r1.10 rpc_netlogon.h
--- include/rpc_netlogon.h 19 Jul 2004 16:46:12 -0000 1.10
+++ include/rpc_netlogon.h 20 Aug 2006 17:01:21 -0000
@@ -217,7 +217,7 @@ typedef struct net_user_info_3
UNISTR2 uni_dir_drive; /* home directory drive unicode string */
uint32 num_groups2; /* num groups */
- DOM_GID gids[LSA_MAX_GROUPS]; /* group info */
+ DOM_GID *gids; /* group info */
UNISTR2 uni_logon_srv; /* logon server unicode string */
UNISTR2 uni_logon_dom; /* logon domain unicode string */
Index: netlogond/srv_netlogon_nt.c
===================================================================
RCS file: /home/cvsroot/dcerpc/tng/source/netlogond/srv_netlogon_nt.c,v
retrieving revision 1.34
diff -u -p -r1.34 srv_netlogon_nt.c
--- netlogond/srv_netlogon_nt.c 12 Jul 2006 20:49:09 -0000 1.34
+++ netlogond/srv_netlogon_nt.c 20 Aug 2006 17:01:24 -0000
@@ -1284,6 +1284,7 @@ uint32 _net_sam_logon(PRS_HANDLE *con_hn
validation_level));
return NT_STATUS_ACCESS_DENIED;
}
+ uctr->switch_value = 3;
uctr->usr.id3 = g_new(NET_USER_INFO_3, 1);
if (uctr->usr.id3 == NULL)
{
@@ -1585,6 +1586,7 @@ uint32 _net_sam_logon(PRS_HANDLE *con_hn
{
case 2:
{
+ uctr->switch_value = 2;
uctr->usr.id2 = g_new(NET_USER_INFO_2, 1);
if (uctr->usr.id2 == NULL)
{
@@ -1608,6 +1610,7 @@ uint32 _net_sam_logon(PRS_HANDLE *con_hn
}
case 3:
{
+ uctr->switch_value = 3;
uctr->usr.id3 = g_new(NET_USER_INFO_3, 1);
if (uctr->usr.id3 == NULL)
{
Index: rpc_parse/parse_net.c
===================================================================
RCS file: /home/cvsroot/dcerpc/tng/source/rpc_parse/parse_net.c,v
retrieving revision 1.27
diff -u -p -r1.27 parse_net.c
--- rpc_parse/parse_net.c 12 Jun 2005 21:34:57 -0000 1.27
+++ rpc_parse/parse_net.c 20 Aug 2006 17:01:30 -0000
@@ -1478,7 +1478,7 @@ BOOL make_net_user_info3W(NET_USER_INFO_
num_groups));
}
- SMB_ASSERT_ARRAY(usr->gids, num_groups);
+ usr->gids = g_new(DOM_GID, num_groups);
for (i = 0; i < num_groups; i++)
{
@@ -1556,7 +1556,13 @@ RPC_IO_DECLARE(net_io_user_info3, NET_US
prs_align(ps);
prs_uint32("num_groups2 ", ps, depth, &(usr->num_groups2)); /* num groups */
- SMB_ASSERT_ARRAY(usr->gids, usr->num_groups2);
+
+ if (UNMARSHALLING(ps))
+ usr->gids = g_new(DOM_GID, usr->num_groups2);
+
+ if (! usr->gids)
+ return False;
+
for (i = 0; i < usr->num_groups2; i++)
{
RPC_MARSH_SUBCALL(smb_io_gid, usr, gids[i]);
@@ -1583,6 +1589,15 @@ RPC_IO_DECLARE(net_io_user_info3, NET_US
return True;
}
+
+static void free_net_user_info_3(NET_USER_INFO_3 *lds)
+{
+ if (! lds)
+ return;
+ safe_free(lds->gids);
+ lds->gids = NULL;
+}
+
/*******************************************************************
reads or writes a structure.
********************************************************************/
@@ -1715,6 +1730,17 @@ void free_net_user_info_ctr(NET_USER_INF
if (ctr == NULL)
return;
+ switch (ctr->switch_value)
+ {
+ case 3:
+ free_net_user_info_3(ctr->usr.id3);
+ break;
+ default:
+ DEBUG(1, ("free_net_user_info_ctr: unknown level %u\n",
+ ctr->switch_value));
+ break;
+ }
+
safe_free(ctr->usr.id);
ctr->usr.id = NULL;
}
Index: rpcclient/cmd_netlogon.c
===================================================================
RCS file: /home/cvsroot/dcerpc/tng/source/rpcclient/cmd_netlogon.c,v
retrieving revision 1.19
diff -u -p -r1.19 cmd_netlogon.c
--- rpcclient/cmd_netlogon.c 1 May 2006 12:33:56 -0000 1.19
+++ rpcclient/cmd_netlogon.c 20 Aug 2006 17:01:43 -0000
@@ -256,7 +256,9 @@ static void display_net_user_info_3(cons
fprintf(out_hnd, "\tGroups:\n");
for (i = 0; i < usr->num_groups; i++)
{
- fprintf(out_hnd, "\t\t%d (0x%x), 0x%x\n", usr->gids[i].g_rid, usr->gids[i].g_rid, usr->gids[i].attr);
+ fprintf(out_hnd, "\t\t%d (0x%x), 0x%x\n",
+ usr->gids[i].g_rid, usr->gids[i].g_rid,
+ usr->gids[i].attr);
}
fprintf(out_hnd, "\tNumber of other SIDs: %d\n", usr->num_other_sids);
}
|