From cbd72ab93bc35aa71a55b190cd999dda4106be07 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Fri, 27 Aug 2010 12:19:09 +1000 Subject: libcli/security Don't export privs[] as a global variable Instead, provide access functions for the LSA and net sam callers for the information they need. They still only enumerate the first 8 privileges that have traditionally been exposed. Andrew Bartlett Signed-off-by: Andrew Tridgell --- source3/rpc_server/srv_lsa_nt.c | 7 ++----- source3/utils/net_sam.c | 6 ++---- 2 files changed, 4 insertions(+), 9 deletions(-) (limited to 'source3') diff --git a/source3/rpc_server/srv_lsa_nt.c b/source3/rpc_server/srv_lsa_nt.c index 6eee899530..c787502a35 100644 --- a/source3/rpc_server/srv_lsa_nt.c +++ b/source3/rpc_server/srv_lsa_nt.c @@ -39,8 +39,6 @@ #define MAX_LOOKUP_SIDS 0x5000 /* 20480 */ -extern PRIVS privs[]; - enum lsa_handle_type { LSA_HANDLE_POLICY_TYPE = 1, LSA_HANDLE_ACCOUNT_TYPE }; struct lsa_info { @@ -1454,7 +1452,6 @@ NTSTATUS _lsa_EnumPrivs(struct pipes_struct *p, uint32 enum_context = *r->in.resume_handle; int num_privs = num_privileges_in_short_list(); struct lsa_PrivEntry *entries = NULL; - struct lsa_LUIDAttribute luid; /* remember that the enum_context starts at 0 and not 1 */ @@ -1495,9 +1492,9 @@ NTSTATUS _lsa_EnumPrivs(struct pipes_struct *p, entries[i].luid.high = 0; } else { - init_lsa_StringLarge(&entries[i].name, privs[i].name); + init_lsa_StringLarge(&entries[i].name, sec_privilege_name_from_index(i)); - entries[i].luid.low = get_privilege_luid( &privs[i].privilege_mask ); + entries[i].luid.low = sec_privilege_from_index(i); entries[i].luid.high = 0; } } diff --git a/source3/utils/net_sam.c b/source3/utils/net_sam.c index 99eac045e0..6a9e261ea0 100644 --- a/source3/utils/net_sam.c +++ b/source3/utils/net_sam.c @@ -631,8 +631,6 @@ static int net_sam_policy(struct net_context *c, int argc, const char **argv) return net_run_function(c, argc, argv, "net sam policy", func); } -extern PRIVS privs[]; - static int net_sam_rights_list(struct net_context *c, int argc, const char **argv) { @@ -647,10 +645,10 @@ static int net_sam_rights_list(struct net_context *c, int argc, if (argc == 0) { int i; - int num = count_all_privileges(); + int num = num_privileges_in_short_list(); for (i=0; i