diff options
author | Luke Leighton <lkcl@samba.org> | 2000-03-13 00:01:04 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 2000-03-13 00:01:04 +0000 |
commit | 2fac7ee8856536564f415e69ba5d01ddd4d21bff (patch) | |
tree | ce546e7ed1613f481e7064a9ba767aa32e637167 | |
parent | 1ea08db66cb64a8b932a16c95ef1109af322abea (diff) | |
download | samba-2fac7ee8856536564f415e69ba5d01ddd4d21bff.tar.gz samba-2fac7ee8856536564f415e69ba5d01ddd4d21bff.tar.xz samba-2fac7ee8856536564f415e69ba5d01ddd4d21bff.zip |
From Elrond@Wunder-Nett.org Mon Mar 13 10:35:03 2000
Date: Sat, 11 Mar 2000 17:57:54 +0100
From: Elrond <Elrond@Wunder-Nett.org>
To: Luke Kenneth Casson Leighton <lkcl@samba.org>
Subject: more cleanup, global_sid_builtin
Hi Luke,
- more cleanup on parse_samr.c
- micro-merge from HEAD for Makefile
- use smb_io_rpc_uuid-return-value in smb_io_pol_hnd
- replaced nearly all &global_sid_S_1_5_20 by
global_sid_builtin (inspired from a post by tim, he
didn't apply this patch)
- closing an lsa-handle in rpcclient->createuser only, if
also opened
-rw-r--r-- | source/Makefile.in | 5 | ||||
-rw-r--r-- | source/include/lib_smb_proto.h | 77 | ||||
-rw-r--r-- | source/include/proto.h | 148 | ||||
-rw-r--r-- | source/include/rpc_parse_proto.h | 79 | ||||
-rw-r--r-- | source/include/sids.h | 1 | ||||
-rw-r--r-- | source/include/winbindd_proto.h | 79 | ||||
-rw-r--r-- | source/lib/domain_namemap.c | 2 | ||||
-rw-r--r-- | source/lib/sids.c | 2 | ||||
-rw-r--r-- | source/lib/util_pwdb.c | 6 | ||||
-rw-r--r-- | source/lib/util_seaccess.c | 4 | ||||
-rw-r--r-- | source/lsarpcd/srv_lsa_samdb.c | 2 | ||||
-rw-r--r-- | source/rpc_parse/parse_misc.c | 4 | ||||
-rw-r--r-- | source/rpc_parse/parse_samr.c | 60 | ||||
-rw-r--r-- | source/rpc_server/srv_lookup.c | 6 | ||||
-rw-r--r-- | source/rpcclient/cmd_samr.c | 3 | ||||
-rw-r--r-- | source/samrd/samr_util.c | 4 | ||||
-rw-r--r-- | source/samrd/srv_samr_als_tdb.c | 8 | ||||
-rw-r--r-- | source/samrd/srv_samr_dom_tdb.c | 2 | ||||
-rw-r--r-- | source/samrd/srv_samr_passdb.c | 16 | ||||
-rw-r--r-- | source/samrd/srv_samr_tdb_init.c | 4 |
20 files changed, 217 insertions, 295 deletions
diff --git a/source/Makefile.in b/source/Makefile.in index 8b85e75608f..a0dfeed6cc0 100644 --- a/source/Makefile.in +++ b/source/Makefile.in @@ -34,10 +34,9 @@ BINDIR = @bindir@ # the previous releases of Samba SBINDIR = @bindir@ LIBDIR = @libdir@ -VARDIR = $(BASEDIR)/var +VARDIR = @localstatedir@ MANDIR = @mandir@ SYSCONFDIR = @sysconfdir@ -PRIVATEDIR = $(BASEDIR)/private # The permissions to give the executables INSTALLPERMS = 0755 @@ -54,6 +53,8 @@ DRIVERFILE = $(LIBDIR)/printers.def FORMSFILE = $(LIBDIR)/ntforms.def NTDRIVERSDIR = $(LIBDIR) PASSWD_PROGRAM = /bin/passwd +PRIVATEDIR = @privatedir@ + SMB_PASSWD_FILE = $(BASEDIR)/private/smbpasswd SAM_DIR = $(BASEDIR)/sam SMB_PASSGRP_FILE = $(BASEDIR)/private/smbpassgrp diff --git a/source/include/lib_smb_proto.h b/source/include/lib_smb_proto.h index cef7fe043b6..dc440bde120 100644 --- a/source/include/lib_smb_proto.h +++ b/source/include/lib_smb_proto.h @@ -344,6 +344,83 @@ BOOL create_user_creds( prs_struct *ps, const vuser_key *key, const struct user_creds *usr); +/*The following definitions come from rpc_parse/parse_misc.c */ + +BOOL smb_io_bigint(char *desc, BIGINT *bigint, prs_struct *ps, int depth); +BOOL smb_io_time(char *desc, NTTIME *nttime, prs_struct *ps, int depth); +BOOL smb_io_lookup_level(char *desc, LOOKUP_LEVEL *level, prs_struct *ps, int depth); +uint32 get_enum_hnd(ENUM_HND *enh); +BOOL make_enum_hnd(ENUM_HND *enh, uint32 hnd); +BOOL smb_io_enum_hnd(char *desc, ENUM_HND *hnd, prs_struct *ps, int depth); +BOOL smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth); +BOOL make_dom_sid2(DOM_SID2 *sid2, const DOM_SID *sid); +BOOL smb_io_dom_sid2(char *desc, DOM_SID2 *sid, prs_struct *ps, int depth); +BOOL make_str_hdr(STRHDR *hdr, int max_len, int len, uint32 buffer); +BOOL smb_io_strhdr(char *desc, STRHDR *hdr, prs_struct *ps, int depth); +BOOL make_strhdr2(STRHDR2 *hdr, uint32 max_len, uint32 len, uint32 buffer); +BOOL smb_io_strhdr2(char *desc, STRHDR2 *hdr, prs_struct *ps, int depth); +BOOL make_uni_hdr(UNIHDR *hdr, int len); +BOOL make_unihdr_from_unistr2(UNIHDR *hdr, const UNISTR2 *str); +BOOL smb_io_unihdr(char *desc, UNIHDR *hdr, prs_struct *ps, int depth); +BOOL make_buf_hdr(BUFHDR *hdr, int max_len, int len); +BOOL smb_io_hdrbuf_pre(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, uint32 *offset); +BOOL smb_io_hdrbuf_post(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, + uint32 ptr_hdrbuf, uint32 max_len, uint32 len); +BOOL smb_io_hdrbuf(char *desc, BUFHDR *hdr, prs_struct *ps, int depth); +BOOL make_bufhdr2(BUFHDR2 *hdr, uint32 info_level, uint32 length, uint32 buffer); +BOOL smb_io_bufhdr2(char *desc, BUFHDR2 *hdr, prs_struct *ps, int depth); +BOOL make_uni_hdr2(UNIHDR2 *hdr, int len); +BOOL make_unihdr2_from_unistr2(UNIHDR2 *hdr, const UNISTR2 *str); +BOOL smb_io_unihdr2(char *desc, UNIHDR2 *hdr2, prs_struct *ps, int depth); +BOOL make_unistr(UNISTR *str, char *buf); +BOOL smb_io_unistr(char *desc, UNISTR *uni, prs_struct *ps, int depth); +BOOL make_buffer3_uint32(BUFFER3 *str, uint32 val); +BOOL make_buffer3_str(BUFFER3 *str, const char *buf, int len); +BOOL make_buffer3_hex(BUFFER3 *str, char *buf); +BOOL make_buffer3_bytes(BUFFER3 *str, uint8 *buf, int len); +BOOL smb_io_buffer3(char *desc, BUFFER3 *buf3, prs_struct *ps, int depth); +BOOL make_buffer4_str(BUFFER4 *str, const char *buf, int len); +BOOL smb_io_buffer4(char *desc, BUFFER4 *buf4, uint32 buffer, prs_struct *ps, int depth); +BOOL init_buffer5(BUFFER5 **str); +BOOL clear_buffer5(BUFFER5 **str); +BOOL make_buffer5(BUFFER5 *str, char *buf, int len); +BOOL smb_io_buffer5(char *desc, BUFFER5 *buf5, prs_struct *ps, int depth); +BOOL make_buffer2_multi(BUFFER2 *str, char *const* const buf, uint32 num); +BOOL make_buffer2(BUFFER2 *str, const char *buf, int len); +BOOL smb_io_buffer2(char *desc, BUFFER2 *buf2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_buf_unistr2(UNISTR2 *str, uint32 *ptr, const char *buf); +BOOL make_string2(STRING2 *str, const char *buf, int len); +BOOL make_buf_string2(STRING2 *str, uint32 *ptr, const char *buf); +BOOL smb_io_string2(char *desc, STRING2 *str2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_unistr2(UNISTR2 *str, const char *buf, int len); +BOOL smb_io_unistr2(char *desc, UNISTR2 *uni2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_dom_rid2(DOM_RID2 *rid2, uint32 rid, uint16 type, uint32 idx); +BOOL smb_io_dom_rid2(char *desc, DOM_RID2 *rid2, prs_struct *ps, int depth); +BOOL make_dom_rid3(DOM_RID3 *rid3, uint32 rid, uint8 type); +BOOL smb_io_dom_rid3(char *desc, DOM_RID3 *rid3, prs_struct *ps, int depth); +BOOL make_log_info(DOM_LOG_INFO *log, + const char *logon_srv, const char *acct_name, + uint16 sec_chan, const char *comp_name); +BOOL smb_io_log_info(char *desc, DOM_LOG_INFO *log, prs_struct *ps, int depth); +BOOL smb_io_chal(char *desc, DOM_CHAL *chal, prs_struct *ps, int depth); +BOOL smb_io_cred(char *desc, DOM_CRED *cred, prs_struct *ps, int depth); +BOOL make_clnt_info2(DOM_CLNT_INFO2 *clnt, + const char *logon_srv, const char *comp_name, + DOM_CRED *clnt_cred); +BOOL smb_io_clnt_info2(char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int depth); +BOOL make_clnt_info(DOM_CLNT_INFO *clnt, + const char *logon_srv, const char *acct_name, + uint16 sec_chan, const char *comp_name, + DOM_CRED *cred); +BOOL smb_io_clnt_info(char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, int depth); +BOOL make_owf_info(OWF_INFO *hash, const uint8 data[16]); +BOOL smb_io_owf_info(char *desc, OWF_INFO *hash, prs_struct *ps, int depth); +BOOL smb_io_gid(char *desc, DOM_GID *gid, prs_struct *ps, int depth); +BOOL smb_io_pol_hnd(char *desc, POLICY_HND *pol, prs_struct *ps, int depth); +BOOL smb_io_dom_query_3(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); +BOOL smb_io_dom_query_5(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); +BOOL smb_io_unistr3(char *desc, UNISTR3 *name, prs_struct *ps, int depth); + /*The following definitions come from rpc_parse/parse_net.c */ BOOL make_q_logon_ctrl2(NET_Q_LOGON_CTRL2 * q_l, diff --git a/source/include/proto.h b/source/include/proto.h index 9a5e0945380..cc7e975f4e0 100644 --- a/source/include/proto.h +++ b/source/include/proto.h @@ -1912,8 +1912,8 @@ BOOL nt5ldap_sam_user_info21_mods(const SAM_USER_INFO_21 *usr, LDAPMod ***mods, void dfs_unlogin(void); BOOL pass_check(const char *_user, const char *_password, - int pwlen, const struct passwd *pwd, - BOOL (*fn)(const char *, const char *)); + int pwlen, const struct passwd *pwd, + BOOL (*fn) (const char *, const char *)); /*The following definitions come from passdb/passdb.c */ @@ -3920,139 +3920,6 @@ uint32 samr_open_by_nt5ldaprid( LDAPDB *hds, POLICY_HND *pol, uint32 access_mask, uint32 rid); BOOL pwdbsam_initialise(void); -/*The following definitions come from samrd/srv_samr_passdb.c */ - -uint32 _samr_close(POLICY_HND *hnd); -uint32 _samr_unknown_2d(const POLICY_HND *domain_pol, const DOM_SID *sid); -uint32 _samr_open_domain(const POLICY_HND *connect_pol, - uint32 ace_perms, - const DOM_SID *sid, - POLICY_HND *domain_pol); -uint32 _samr_get_usrdom_pwinfo(const POLICY_HND *user_pol, - uint16 *unknown_0, - uint16 *unknown_1, - uint32 *unknown_2); -uint32 _samr_query_sec_obj(const POLICY_HND *user_pol, SEC_DESC_BUF *buf); -uint32 _samr_enum_dom_users( const POLICY_HND *pol, uint32 *start_idx, - uint16 acb_mask, uint16 unk_1, uint32 size, - SAM_ENTRY **sam, - UNISTR2 **uni_acct_name, - uint32 *num_sam_users); -uint32 _samr_add_groupmem(const POLICY_HND *pol, uint32 rid, uint32 unknown); -uint32 _samr_del_groupmem(const POLICY_HND *pol, uint32 rid); -uint32 _samr_add_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid); -uint32 _samr_del_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid); -uint32 _samr_enum_domains(const POLICY_HND *pol, uint32 *start_idx, - uint32 size, - SAM_ENTRY **sam, - UNISTR2 **uni_acct_name, - uint32 *num_sam_users); -uint32 _samr_enum_dom_groups(const POLICY_HND *pol, - uint32 *start_idx, uint32 size, - SAM_ENTRY **sam, - UNISTR2 **uni_acct_name, - uint32 *num_sam_groups); -uint32 _samr_enum_dom_aliases(const POLICY_HND *pol, - uint32 *start_idx, uint32 size, - SAM_ENTRY **sam, - UNISTR2 **uni_acct_name, - uint32 *num_sam_aliases); -uint32 _samr_query_dispinfo( const POLICY_HND *domain_pol, uint16 level, - uint32 start_idx, - uint32 max_entries, - uint32 max_size, - uint32 *data_size, - uint32 *num_entries, - SAM_DISPINFO_CTR *ctr); -uint32 _samr_delete_dom_user(POLICY_HND *user_pol); -uint32 _samr_delete_dom_group(POLICY_HND *group_pol); -uint32 _samr_query_groupmem(const POLICY_HND *group_pol, - uint32 *num_mem, - uint32 **rid, - uint32 **attr); -uint32 _samr_set_groupinfo(const POLICY_HND *pol, - uint16 switch_level, - const GROUP_INFO_CTR* ctr); -uint32 _samr_query_groupinfo(const POLICY_HND *pol, - uint16 switch_level, - GROUP_INFO_CTR* ctr); -uint32 _samr_query_aliasinfo(const POLICY_HND *alias_pol, - uint16 switch_level, - ALIAS_INFO_CTR *ctr); -uint32 _samr_query_useraliases(const POLICY_HND *pol, - const uint32 *ptr_sid, const DOM_SID2 *sid, - uint32 *num_aliases, uint32 **rid); -uint32 _samr_delete_dom_alias(POLICY_HND *alias_pol); -uint32 _samr_query_aliasmem(const POLICY_HND *alias_pol, - uint32 *num_mem, DOM_SID2 **sid); -uint32 _samr_lookup_names(const POLICY_HND *pol, - - uint32 num_names1, - uint32 flags, - uint32 ptr, - const UNISTR2 *uni_name, - - uint32 *num_rids1, - uint32 rid[MAX_SAM_ENTRIES], - uint32 *num_types1, - uint32 type[MAX_SAM_ENTRIES]); -uint32 _samr_chgpasswd_user( const UNISTR2 *uni_dest_host, - const UNISTR2 *uni_user_name, - const char nt_newpass[516], - const uchar nt_oldhash[16], - const char lm_newpass[516], - const uchar lm_oldhash[16]); -uint32 _samr_get_dom_pwinfo(const UNISTR2 *uni_srv_name, - uint16 *unk_0, uint16 *unk_1, uint16 *unk_2); -uint32 _samr_lookup_rids(const POLICY_HND *pol, - uint32 num_rids, uint32 flags, - const uint32 *rids, - uint32 *num_names, - UNIHDR **hdr_name, UNISTR2** uni_name, - uint32 **types); -uint32 _samr_open_user(const POLICY_HND *domain_pol, - uint32 access_mask, uint32 user_rid, - POLICY_HND *user_pol); -uint32 _samr_query_userinfo(const POLICY_HND *pol, uint16 switch_value, - SAM_USERINFO_CTR *ctr); -uint32 _samr_set_userinfo(const POLICY_HND *pol, uint16 switch_value, - SAM_USERINFO_CTR *ctr); -uint32 _samr_set_userinfo2(const POLICY_HND *pol, uint16 switch_value, - SAM_USERINFO_CTR *ctr); -uint32 _samr_query_usergroups(const POLICY_HND *pol, - uint32 *num_groups, - DOM_GID **gids); -uint32 _samr_create_dom_alias(const POLICY_HND *domain_pol, - const UNISTR2 *uni_acct_name, - uint32 access_mask, - POLICY_HND *alias_pol, uint32 *rid); -uint32 _samr_create_dom_group(const POLICY_HND *domain_pol, - const UNISTR2 *uni_acct_name, - uint32 access_mask, - POLICY_HND *group_pol, uint32 *rid); -uint32 _samr_query_dom_info(const POLICY_HND *domain_pol, - uint16 switch_value, - SAM_UNK_CTR *ctr); -uint32 _samr_create_user(const POLICY_HND *domain_pol, - const UNISTR2 *uni_username, - uint16 acb_info, uint32 access_mask, - POLICY_HND *user_pol, - uint32 *unknown_0, uint32 *user_rid); -uint32 _samr_connect_anon(const UNISTR2 *srv_name, uint32 access_mask, - POLICY_HND *connect_pol); -uint32 _samr_connect(const UNISTR2 *srv_name, uint32 access_mask, - POLICY_HND *connect_pol); -uint32 _samr_open_alias(const POLICY_HND *domain_pol, - uint32 access_mask, uint32 alias_rid, - POLICY_HND *alias_pol); -uint32 _samr_open_group(const POLICY_HND *domain_pol, uint32 access_mask, - uint32 group_rid, - POLICY_HND *group_pol); -uint32 _samr_lookup_domain(const POLICY_HND *connect_pol, - const UNISTR2 *uni_domain, - DOM_SID *dom_sid); -BOOL pwdbsam_initialise(void); - /*The following definitions come from samrd/srv_samr_sam_tdb.c */ uint32 _samr_enum_domains(const POLICY_HND *pol, uint32 *start_idx, @@ -4188,17 +4055,6 @@ void generate_next_challenge(char *challenge); BOOL set_challenge(unsigned char *challenge); BOOL last_challenge(unsigned char *challenge); -/*The following definitions come from smbd/chgpasswd.c */ - -BOOL chgpasswd(const char *_name,char *oldpass,char *newpass, BOOL as_root); -BOOL chgpasswd(const char *name,char *oldpass,char *newpass, BOOL as_root); -BOOL pass_oem_change(const char *user, - const uchar *lmdata, const uchar *lmhash, - const uchar *ntdata, const uchar *nthash); -BOOL change_oem_password(struct smb_passwd *smbpw, UNISTR2 *new_passwd, - BOOL unicode, BOOL override); -BOOL update_smbpassword_file(const char *user, const char *password); - /*The following definitions come from smbd/close.c */ void close_file(files_struct *fsp, BOOL normal_close); diff --git a/source/include/rpc_parse_proto.h b/source/include/rpc_parse_proto.h index 6ae4d6c32af..cf349a41b77 100644 --- a/source/include/rpc_parse_proto.h +++ b/source/include/rpc_parse_proto.h @@ -158,83 +158,6 @@ BOOL make_lsa_q_close(LSA_Q_CLOSE * q_c, POLICY_HND *hnd); BOOL lsa_io_q_close(char *desc, LSA_Q_CLOSE * q_c, prs_struct * ps, int depth); BOOL lsa_io_r_close(char *desc, LSA_R_CLOSE * r_c, prs_struct * ps, int depth); -/*The following definitions come from rpc_parse/parse_misc.c */ - -BOOL smb_io_bigint(char *desc, BIGINT *bigint, prs_struct *ps, int depth); -BOOL smb_io_time(char *desc, NTTIME *nttime, prs_struct *ps, int depth); -BOOL smb_io_lookup_level(char *desc, LOOKUP_LEVEL *level, prs_struct *ps, int depth); -uint32 get_enum_hnd(ENUM_HND *enh); -BOOL make_enum_hnd(ENUM_HND *enh, uint32 hnd); -BOOL smb_io_enum_hnd(char *desc, ENUM_HND *hnd, prs_struct *ps, int depth); -BOOL smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth); -BOOL make_dom_sid2(DOM_SID2 *sid2, const DOM_SID *sid); -BOOL smb_io_dom_sid2(char *desc, DOM_SID2 *sid, prs_struct *ps, int depth); -BOOL make_str_hdr(STRHDR *hdr, int max_len, int len, uint32 buffer); -BOOL smb_io_strhdr(char *desc, STRHDR *hdr, prs_struct *ps, int depth); -BOOL make_strhdr2(STRHDR2 *hdr, uint32 max_len, uint32 len, uint32 buffer); -BOOL smb_io_strhdr2(char *desc, STRHDR2 *hdr, prs_struct *ps, int depth); -BOOL make_uni_hdr(UNIHDR *hdr, int len); -BOOL make_unihdr_from_unistr2(UNIHDR *hdr, const UNISTR2 *str); -BOOL smb_io_unihdr(char *desc, UNIHDR *hdr, prs_struct *ps, int depth); -BOOL make_buf_hdr(BUFHDR *hdr, int max_len, int len); -BOOL smb_io_hdrbuf_pre(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, uint32 *offset); -BOOL smb_io_hdrbuf_post(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, - uint32 ptr_hdrbuf, uint32 max_len, uint32 len); -BOOL smb_io_hdrbuf(char *desc, BUFHDR *hdr, prs_struct *ps, int depth); -BOOL make_bufhdr2(BUFHDR2 *hdr, uint32 info_level, uint32 length, uint32 buffer); -BOOL smb_io_bufhdr2(char *desc, BUFHDR2 *hdr, prs_struct *ps, int depth); -BOOL make_uni_hdr2(UNIHDR2 *hdr, int len); -BOOL make_unihdr2_from_unistr2(UNIHDR2 *hdr, const UNISTR2 *str); -BOOL smb_io_unihdr2(char *desc, UNIHDR2 *hdr2, prs_struct *ps, int depth); -BOOL make_unistr(UNISTR *str, char *buf); -BOOL smb_io_unistr(char *desc, UNISTR *uni, prs_struct *ps, int depth); -BOOL make_buffer3_uint32(BUFFER3 *str, uint32 val); -BOOL make_buffer3_str(BUFFER3 *str, const char *buf, int len); -BOOL make_buffer3_hex(BUFFER3 *str, char *buf); -BOOL make_buffer3_bytes(BUFFER3 *str, uint8 *buf, int len); -BOOL smb_io_buffer3(char *desc, BUFFER3 *buf3, prs_struct *ps, int depth); -BOOL make_buffer4_str(BUFFER4 *str, const char *buf, int len); -BOOL smb_io_buffer4(char *desc, BUFFER4 *buf4, uint32 buffer, prs_struct *ps, int depth); -BOOL init_buffer5(BUFFER5 **str); -BOOL clear_buffer5(BUFFER5 **str); -BOOL make_buffer5(BUFFER5 *str, char *buf, int len); -BOOL smb_io_buffer5(char *desc, BUFFER5 *buf5, prs_struct *ps, int depth); -BOOL make_buffer2_multi(BUFFER2 *str, char *const* const buf, uint32 num); -BOOL make_buffer2(BUFFER2 *str, const char *buf, int len); -BOOL smb_io_buffer2(char *desc, BUFFER2 *buf2, uint32 buffer, prs_struct *ps, int depth); -BOOL make_buf_unistr2(UNISTR2 *str, uint32 *ptr, const char *buf); -BOOL make_string2(STRING2 *str, const char *buf, int len); -BOOL make_buf_string2(STRING2 *str, uint32 *ptr, const char *buf); -BOOL smb_io_string2(char *desc, STRING2 *str2, uint32 buffer, prs_struct *ps, int depth); -BOOL make_unistr2(UNISTR2 *str, const char *buf, int len); -BOOL smb_io_unistr2(char *desc, UNISTR2 *uni2, uint32 buffer, prs_struct *ps, int depth); -BOOL make_dom_rid2(DOM_RID2 *rid2, uint32 rid, uint16 type, uint32 idx); -BOOL smb_io_dom_rid2(char *desc, DOM_RID2 *rid2, prs_struct *ps, int depth); -BOOL make_dom_rid3(DOM_RID3 *rid3, uint32 rid, uint8 type); -BOOL smb_io_dom_rid3(char *desc, DOM_RID3 *rid3, prs_struct *ps, int depth); -BOOL make_log_info(DOM_LOG_INFO *log, - const char *logon_srv, const char *acct_name, - uint16 sec_chan, const char *comp_name); -BOOL smb_io_log_info(char *desc, DOM_LOG_INFO *log, prs_struct *ps, int depth); -BOOL smb_io_chal(char *desc, DOM_CHAL *chal, prs_struct *ps, int depth); -BOOL smb_io_cred(char *desc, DOM_CRED *cred, prs_struct *ps, int depth); -BOOL make_clnt_info2(DOM_CLNT_INFO2 *clnt, - const char *logon_srv, const char *comp_name, - DOM_CRED *clnt_cred); -BOOL smb_io_clnt_info2(char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int depth); -BOOL make_clnt_info(DOM_CLNT_INFO *clnt, - const char *logon_srv, const char *acct_name, - uint16 sec_chan, const char *comp_name, - DOM_CRED *cred); -BOOL smb_io_clnt_info(char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, int depth); -BOOL make_owf_info(OWF_INFO *hash, const uint8 data[16]); -BOOL smb_io_owf_info(char *desc, OWF_INFO *hash, prs_struct *ps, int depth); -BOOL smb_io_gid(char *desc, DOM_GID *gid, prs_struct *ps, int depth); -BOOL smb_io_pol_hnd(char *desc, POLICY_HND *pol, prs_struct *ps, int depth); -BOOL smb_io_dom_query_3(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); -BOOL smb_io_dom_query_5(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); -BOOL smb_io_unistr3(char *desc, UNISTR3 *name, prs_struct *ps, int depth); - /*The following definitions come from rpc_parse/parse_netsec.c */ BOOL rpc_hdr_netsec_auth_chk(RPC_HDR_AUTH *rai); @@ -828,8 +751,6 @@ uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR * ctr, const SAM_USER_INFO_21 * usr); BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr, const uchar * sess_key, uint16 switch_value, void *info); -BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, - int depth); void free_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr); BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO * r_u, SAM_USERINFO_CTR * ctr, uint32 status); diff --git a/source/include/sids.h b/source/include/sids.h index 12ec6714e01..24592163401 100644 --- a/source/include/sids.h +++ b/source/include/sids.h @@ -37,5 +37,6 @@ extern DOM_SID global_sid_S_1_5; /* NT Authority */ extern DOM_SID global_sid_system; /* SYSTEM */ extern const DOM_SID *global_sid_everyone; +extern const DOM_SID *global_sid_builtin; #endif /* _SIDS_H */ diff --git a/source/include/winbindd_proto.h b/source/include/winbindd_proto.h index dd869408cc5..48a4ded8887 100644 --- a/source/include/winbindd_proto.h +++ b/source/include/winbindd_proto.h @@ -1770,6 +1770,83 @@ BOOL make_lsa_q_close(LSA_Q_CLOSE * q_c, POLICY_HND *hnd); BOOL lsa_io_q_close(char *desc, LSA_Q_CLOSE * q_c, prs_struct * ps, int depth); BOOL lsa_io_r_close(char *desc, LSA_R_CLOSE * r_c, prs_struct * ps, int depth); +/*The following definitions come from rpc_parse/parse_misc.c */ + +BOOL smb_io_bigint(char *desc, BIGINT *bigint, prs_struct *ps, int depth); +BOOL smb_io_time(char *desc, NTTIME *nttime, prs_struct *ps, int depth); +BOOL smb_io_lookup_level(char *desc, LOOKUP_LEVEL *level, prs_struct *ps, int depth); +uint32 get_enum_hnd(ENUM_HND *enh); +BOOL make_enum_hnd(ENUM_HND *enh, uint32 hnd); +BOOL smb_io_enum_hnd(char *desc, ENUM_HND *hnd, prs_struct *ps, int depth); +BOOL smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth); +BOOL make_dom_sid2(DOM_SID2 *sid2, const DOM_SID *sid); +BOOL smb_io_dom_sid2(char *desc, DOM_SID2 *sid, prs_struct *ps, int depth); +BOOL make_str_hdr(STRHDR *hdr, int max_len, int len, uint32 buffer); +BOOL smb_io_strhdr(char *desc, STRHDR *hdr, prs_struct *ps, int depth); +BOOL make_strhdr2(STRHDR2 *hdr, uint32 max_len, uint32 len, uint32 buffer); +BOOL smb_io_strhdr2(char *desc, STRHDR2 *hdr, prs_struct *ps, int depth); +BOOL make_uni_hdr(UNIHDR *hdr, int len); +BOOL make_unihdr_from_unistr2(UNIHDR *hdr, const UNISTR2 *str); +BOOL smb_io_unihdr(char *desc, UNIHDR *hdr, prs_struct *ps, int depth); +BOOL make_buf_hdr(BUFHDR *hdr, int max_len, int len); +BOOL smb_io_hdrbuf_pre(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, uint32 *offset); +BOOL smb_io_hdrbuf_post(char *desc, BUFHDR *hdr, prs_struct *ps, int depth, + uint32 ptr_hdrbuf, uint32 max_len, uint32 len); +BOOL smb_io_hdrbuf(char *desc, BUFHDR *hdr, prs_struct *ps, int depth); +BOOL make_bufhdr2(BUFHDR2 *hdr, uint32 info_level, uint32 length, uint32 buffer); +BOOL smb_io_bufhdr2(char *desc, BUFHDR2 *hdr, prs_struct *ps, int depth); +BOOL make_uni_hdr2(UNIHDR2 *hdr, int len); +BOOL make_unihdr2_from_unistr2(UNIHDR2 *hdr, const UNISTR2 *str); +BOOL smb_io_unihdr2(char *desc, UNIHDR2 *hdr2, prs_struct *ps, int depth); +BOOL make_unistr(UNISTR *str, char *buf); +BOOL smb_io_unistr(char *desc, UNISTR *uni, prs_struct *ps, int depth); +BOOL make_buffer3_uint32(BUFFER3 *str, uint32 val); +BOOL make_buffer3_str(BUFFER3 *str, const char *buf, int len); +BOOL make_buffer3_hex(BUFFER3 *str, char *buf); +BOOL make_buffer3_bytes(BUFFER3 *str, uint8 *buf, int len); +BOOL smb_io_buffer3(char *desc, BUFFER3 *buf3, prs_struct *ps, int depth); +BOOL make_buffer4_str(BUFFER4 *str, const char *buf, int len); +BOOL smb_io_buffer4(char *desc, BUFFER4 *buf4, uint32 buffer, prs_struct *ps, int depth); +BOOL init_buffer5(BUFFER5 **str); +BOOL clear_buffer5(BUFFER5 **str); +BOOL make_buffer5(BUFFER5 *str, char *buf, int len); +BOOL smb_io_buffer5(char *desc, BUFFER5 *buf5, prs_struct *ps, int depth); +BOOL make_buffer2_multi(BUFFER2 *str, char *const* const buf, uint32 num); +BOOL make_buffer2(BUFFER2 *str, const char *buf, int len); +BOOL smb_io_buffer2(char *desc, BUFFER2 *buf2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_buf_unistr2(UNISTR2 *str, uint32 *ptr, const char *buf); +BOOL make_string2(STRING2 *str, const char *buf, int len); +BOOL make_buf_string2(STRING2 *str, uint32 *ptr, const char *buf); +BOOL smb_io_string2(char *desc, STRING2 *str2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_unistr2(UNISTR2 *str, const char *buf, int len); +BOOL smb_io_unistr2(char *desc, UNISTR2 *uni2, uint32 buffer, prs_struct *ps, int depth); +BOOL make_dom_rid2(DOM_RID2 *rid2, uint32 rid, uint16 type, uint32 idx); +BOOL smb_io_dom_rid2(char *desc, DOM_RID2 *rid2, prs_struct *ps, int depth); +BOOL make_dom_rid3(DOM_RID3 *rid3, uint32 rid, uint8 type); +BOOL smb_io_dom_rid3(char *desc, DOM_RID3 *rid3, prs_struct *ps, int depth); +BOOL make_log_info(DOM_LOG_INFO *log, + const char *logon_srv, const char *acct_name, + uint16 sec_chan, const char *comp_name); +BOOL smb_io_log_info(char *desc, DOM_LOG_INFO *log, prs_struct *ps, int depth); +BOOL smb_io_chal(char *desc, DOM_CHAL *chal, prs_struct *ps, int depth); +BOOL smb_io_cred(char *desc, DOM_CRED *cred, prs_struct *ps, int depth); +BOOL make_clnt_info2(DOM_CLNT_INFO2 *clnt, + const char *logon_srv, const char *comp_name, + DOM_CRED *clnt_cred); +BOOL smb_io_clnt_info2(char *desc, DOM_CLNT_INFO2 *clnt, prs_struct *ps, int depth); +BOOL make_clnt_info(DOM_CLNT_INFO *clnt, + const char *logon_srv, const char *acct_name, + uint16 sec_chan, const char *comp_name, + DOM_CRED *cred); +BOOL smb_io_clnt_info(char *desc, DOM_CLNT_INFO *clnt, prs_struct *ps, int depth); +BOOL make_owf_info(OWF_INFO *hash, const uint8 data[16]); +BOOL smb_io_owf_info(char *desc, OWF_INFO *hash, prs_struct *ps, int depth); +BOOL smb_io_gid(char *desc, DOM_GID *gid, prs_struct *ps, int depth); +BOOL smb_io_pol_hnd(char *desc, POLICY_HND *pol, prs_struct *ps, int depth); +BOOL smb_io_dom_query_3(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); +BOOL smb_io_dom_query_5(char *desc, DOM_QUERY_3 *d_q, prs_struct *ps, int depth); +BOOL smb_io_unistr3(char *desc, UNISTR3 *name, prs_struct *ps, int depth); + /*The following definitions come from rpc_parse/parse_net.c */ BOOL make_q_logon_ctrl2(NET_Q_LOGON_CTRL2 * q_l, @@ -2562,8 +2639,6 @@ uint32 make_samr_userinfo_ctr_usr21(SAM_USERINFO_CTR * ctr, const SAM_USER_INFO_21 * usr); BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr, const uchar * sess_key, uint16 switch_value, void *info); -BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, - int depth); void free_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr); BOOL make_samr_r_query_userinfo(SAMR_R_QUERY_USERINFO * r_u, SAM_USERINFO_CTR * ctr, uint32 status); diff --git a/source/lib/domain_namemap.c b/source/lib/domain_namemap.c index 6985b14c8da..d32b2a5be9b 100644 --- a/source/lib/domain_namemap.c +++ b/source/lib/domain_namemap.c @@ -119,7 +119,7 @@ static BOOL make_mydomain_sid(DOM_NAME_MAP *grp, DOM_MAP_TYPE type) return False; } - if (sid_equal(&grp->sid, &global_sid_S_1_5_20)) + if (sid_equal(&grp->sid, global_sid_builtin)) { /* * only builtin aliases are recognised in S-1-5-20 diff --git a/source/lib/sids.c b/source/lib/sids.c index 1bc0d68016b..d036d453c46 100644 --- a/source/lib/sids.c +++ b/source/lib/sids.c @@ -73,6 +73,7 @@ DOM_SID global_sid_system; /* NT System */ DOM_SID global_sid_S_1_1_0; /* everyone */ const DOM_SID *global_sid_everyone = NULL; +const DOM_SID *global_sid_builtin = NULL; struct sid_map { @@ -233,6 +234,7 @@ void generate_wellknown_sids(void) string_to_sid(&global_sid_system , "S-1-5-17"); global_sid_everyone = &global_sid_S_1_1_0; + global_sid_builtin = &global_sid_S_1_5_20; } /**************************************************************************** diff --git a/source/lib/util_pwdb.c b/source/lib/util_pwdb.c index a319e7c163c..ab5adf34bef 100644 --- a/source/lib/util_pwdb.c +++ b/source/lib/util_pwdb.c @@ -240,7 +240,7 @@ uint32 lookup_wk_group_name(const char *group_name, const char *domain, } else if (strequal(domain, "BUILTIN")) { - sid_copy(sid, &global_sid_S_1_5_20); + sid_copy(sid, global_sid_builtin); } else { @@ -283,7 +283,7 @@ uint32 lookup_wk_user_name(const char *user_name, const char *domain, } else if (strequal(domain, "BUILTIN")) { - sid_copy(sid, &global_sid_S_1_5_20); + sid_copy(sid, global_sid_builtin); } else { @@ -323,7 +323,7 @@ uint32 lookup_builtin_alias_name(const char *alias_name, const char *domain, { if (sid != NULL) { - sid_copy(sid, &global_sid_S_1_5_20); + sid_copy(sid, global_sid_builtin); } } else diff --git a/source/lib/util_seaccess.c b/source/lib/util_seaccess.c index fba48d3c84d..471e1c1fe19 100644 --- a/source/lib/util_seaccess.c +++ b/source/lib/util_seaccess.c @@ -94,7 +94,7 @@ static BOOL check_ace(const SEC_ACE *ace, BOOL is_owner, case SEC_ACE_TYPE_ACCESS_ALLOWED: { /* everyone - or us */ - if (sid_equal(&ace->sid, &global_sid_S_1_1_0) || + if (sid_equal(&ace->sid, global_sid_everyone) || sid_equal(&ace->sid, sid)) { (*status) = acegrant(mask, acc_req, acc_grant, acc_deny); @@ -109,7 +109,7 @@ static BOOL check_ace(const SEC_ACE *ace, BOOL is_owner, case SEC_ACE_TYPE_ACCESS_DENIED: { /* everyone - or us */ - if (sid_equal(&ace->sid, &global_sid_S_1_1_0) || + if (sid_equal(&ace->sid, global_sid_everyone) || sid_equal(&ace->sid, sid)) { (*status) = acedeny(mask, acc_req, acc_grant, acc_deny); diff --git a/source/lsarpcd/srv_lsa_samdb.c b/source/lsarpcd/srv_lsa_samdb.c index 738f66cbfab..53293a79f27 100644 --- a/source/lsarpcd/srv_lsa_samdb.c +++ b/source/lsarpcd/srv_lsa_samdb.c @@ -386,7 +386,7 @@ uint32 _lsa_lookup_sids(const POLICY_HND *hnd, map_domain_sid_to_name(&find_sid, dom_name)) { if (sid_equal(&find_sid, &global_sam_sid) || - sid_equal(&find_sid, &global_sid_S_1_5_20)) + sid_equal(&find_sid, global_sid_builtin)) { status1 = lookup_sam_rid(dom_name, &find_sid, rid, diff --git a/source/rpc_parse/parse_misc.c b/source/rpc_parse/parse_misc.c index 0966262120a..21548f37a23 100644 --- a/source/rpc_parse/parse_misc.c +++ b/source/rpc_parse/parse_misc.c @@ -1299,9 +1299,7 @@ BOOL smb_io_pol_hnd(char *desc, POLICY_HND *pol, prs_struct *ps, int depth) prs_align(ps); prs_uint32("ptr", ps, depth, &pol->ptr); - smb_io_rpc_uuid("uuid", &pol->uuid, ps, depth); - - return True; + return smb_io_rpc_uuid("uuid", &pol->uuid, ps, depth); } /******************************************************************* diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c index 7929c4fac7a..f4687c8c333 100644 --- a/source/rpc_parse/parse_samr.c +++ b/source/rpc_parse/parse_samr.c @@ -5942,18 +5942,23 @@ BOOL make_samr_userinfo_ctr(SAM_USERINFO_CTR * ctr, const uchar * sess_key, /******************************************************************* reads or writes a structure. ********************************************************************/ -BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, - int depth) +static BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR *ctr, + prs_struct *ps, int depth) { + BOOL ret; if (ctr == NULL) return False; prs_debug(ps, depth, desc, "samr_io_userinfo_ctr"); depth++; + prs_align(ps); + prs_uint16("switch_value", ps, depth, &(ctr->switch_value)); prs_align(ps); + ret = False; + switch (ctr->switch_value) { case 0x10: @@ -5963,17 +5968,14 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, /* reading */ ctr->info.id10 = g_new(SAM_USER_INFO_10, 1); } - if (ctr->info.id10 != NULL) - { - sam_io_user_info10("", ctr->info.id10, ps, - depth); - } - else + if (ctr->info.id10 == NULL) { DEBUG(2, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } + ret = sam_io_user_info10("", ctr->info.id10, ps, + depth); break; } case 0x11: @@ -5983,17 +5985,14 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, /* reading */ ctr->info.id11 = g_new(SAM_USER_INFO_11, 1); } - if (ctr->info.id11 != NULL) - { - sam_io_user_info11("", ctr->info.id11, ps, - depth); - } - else + if (ctr->info.id11 == NULL) { DEBUG(2, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } + ret = sam_io_user_info11("", ctr->info.id11, ps, + depth); break; } case 0x12: @@ -6003,17 +6002,14 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, /* reading */ ctr->info.id12 = g_new(SAM_USER_INFO_12, 1); } - if (ctr->info.id12 != NULL) - { - sam_io_user_info12("", ctr->info.id12, ps, - depth); - } - else + if (ctr->info.id12 == NULL) { DEBUG(2, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } + ret = sam_io_user_info12("", ctr->info.id12, ps, + depth); break; } case 21: @@ -6023,17 +6019,14 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, /* reading */ ctr->info.id21 = g_new(SAM_USER_INFO_21, 1); } - if (ctr->info.id21 != NULL) - { - sam_io_user_info21("", ctr->info.id21, ps, - depth); - } - else + if (ctr->info.id21 == NULL) { DEBUG(2, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } + ret = sam_io_user_info21("", ctr->info.id21, ps, + depth); break; } case 23: @@ -6043,17 +6036,14 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, /* reading */ ctr->info.id23 = g_new(SAM_USER_INFO_23, 1); } - if (ctr->info.id23 != NULL) - { - sam_io_user_info23("", ctr->info.id23, ps, - depth); - } - else + if (ctr->info.id23 == NULL) { DEBUG(2, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } + ret = sam_io_user_info23("", ctr->info.id23, ps, + depth); break; } case 24: @@ -6069,13 +6059,15 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, ("samr_io_userinfo_ctr: info pointer not initialised\n")); return False; } - sam_io_user_info24("", ctr->info.id24, ps, depth); + ret = sam_io_user_info24("", ctr->info.id24, ps, + depth); break; } default: { DEBUG(2, ("samr_io_userinfo_ctr: unknown switch level\n")); + ret = False; break; } @@ -6083,7 +6075,7 @@ BOOL samr_io_userinfo_ctr(char *desc, SAM_USERINFO_CTR * ctr, prs_struct * ps, prs_align(ps); - return True; + return ret; } /******************************************************************* diff --git a/source/rpc_server/srv_lookup.c b/source/rpc_server/srv_lookup.c index dcb4f614d6a..f6ab82c1a5e 100644 --- a/source/rpc_server/srv_lookup.c +++ b/source/rpc_server/srv_lookup.c @@ -147,7 +147,7 @@ static uint32 lookup_wk_group_sid(DOM_SID *sid, char *group_name, uint32 *type) sid_copy(&tmp, sid); sid_split_rid(&tmp, &rid); - if (!sid_equal(&global_sid_S_1_5_20, &tmp)) + if (!sid_equal(global_sid_builtin, &tmp)) { return 0xC0000000 | NT_STATUS_NONE_MAPPED; } @@ -216,7 +216,7 @@ static uint32 lookup_wk_alias_sid(DOM_SID *sid, char *alias_name, uint32 *type) sid_copy(&tmp, sid); sid_split_rid(&tmp, &rid); - if (!sid_equal(&global_sid_S_1_5_20, &tmp)) + if (!sid_equal(global_sid_builtin, &tmp)) { return 0xC0000000 | NT_STATUS_NONE_MAPPED; } @@ -285,7 +285,7 @@ static uint32 lookup_wk_user_sid(DOM_SID *sid, char *user_name, uint32 *type) sid_copy(&tmp, sid); sid_split_rid(&tmp, &rid); - if (!sid_equal(&global_sid_S_1_5_20, &tmp)) + if (!sid_equal(global_sid_builtin, &tmp)) { return 0xC0000000 | NT_STATUS_NONE_MAPPED; } diff --git a/source/rpcclient/cmd_samr.c b/source/rpcclient/cmd_samr.c index 69b7dc5c4d3..bcbed57b333 100644 --- a/source/rpcclient/cmd_samr.c +++ b/source/rpcclient/cmd_samr.c @@ -1205,6 +1205,7 @@ void cmd_sam_create_dom_user(struct client_info *info, int argc, char *argv[]) } res1 = res1 ? lsa_close(&pol_sec) : False; + res = res ? lsa_close(&lsa_pol) : False; memset(ntpw, 0, sizeof(ntpw)); } @@ -1214,8 +1215,6 @@ void cmd_sam_create_dom_user(struct client_info *info, int argc, char *argv[]) report(out_hnd, "Create Domain User: FAILED\n"); } - res = res ? lsa_close(&lsa_pol) : False; - memset(&upw, 0, sizeof(upw)); } diff --git a/source/samrd/samr_util.c b/source/samrd/samr_util.c index 2d1c2f06b8d..66e4dab9cda 100644 --- a/source/samrd/samr_util.c +++ b/source/samrd/samr_util.c @@ -60,10 +60,10 @@ uint32 samr_make_usr_obj_sd(SEC_DESC_BUF *buf, DOM_SID *usr_sid) return NT_STATUS_NO_MEMORY; } - sid_copy(&adm_sid, &global_sid_S_1_5_20); + sid_copy(&adm_sid, global_sid_builtin); sid_append_rid(&adm_sid, BUILTIN_ALIAS_RID_ADMINS); - sid_copy(&act_sid, &global_sid_S_1_5_20); + sid_copy(&act_sid, global_sid_builtin); sid_append_rid(&act_sid, BUILTIN_ALIAS_RID_ACCOUNT_OPS); sid_copy(&glb_sid, global_sid_everyone); diff --git a/source/samrd/srv_samr_als_tdb.c b/source/samrd/srv_samr_als_tdb.c index 934133f3056..7ebfb1b3f0e 100644 --- a/source/samrd/srv_samr_als_tdb.c +++ b/source/samrd/srv_samr_als_tdb.c @@ -96,7 +96,7 @@ uint32 _samr_add_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid) return NT_STATUS_ACCESS_DENIED; } } - else if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + else if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("add member on BUILTIN SID\n")); @@ -146,7 +146,7 @@ uint32 _samr_del_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid) return NT_STATUS_ACCESS_DENIED; } } - else if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + else if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("del member on BUILTIN SID\n")); @@ -267,7 +267,7 @@ uint32 _samr_query_aliasmem(const POLICY_HND *alias_pol, DEBUG(10,("sid is %s\n", alias_sid_str)); - if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("lookup on S-1-5-20\n")); @@ -395,7 +395,7 @@ uint32 _samr_open_alias(const POLICY_HND *domain_pol, /* this should not be hard-coded like this */ if (!sid_equal(&sid, &global_sam_sid) && - !sid_equal(&sid, &global_sid_S_1_5_20)) + !sid_equal(&sid, global_sid_builtin)) { return NT_STATUS_ACCESS_DENIED; } diff --git a/source/samrd/srv_samr_dom_tdb.c b/source/samrd/srv_samr_dom_tdb.c index 260a0c176a7..9ff433d5b97 100644 --- a/source/samrd/srv_samr_dom_tdb.c +++ b/source/samrd/srv_samr_dom_tdb.c @@ -384,7 +384,7 @@ uint32 _samr_enum_dom_aliases(const POLICY_HND *pol, DEBUG(5, ("samr_reply_enum_dom_aliases: sid %s\n", sid_str)); /* well-known aliases */ - if (sid_equal(&sid, &global_sid_S_1_5_20)) + if (sid_equal(&sid, global_sid_builtin)) { BOOL ret = True; /* builtin aliases */ diff --git a/source/samrd/srv_samr_passdb.c b/source/samrd/srv_samr_passdb.c index d577ea05f23..2cfaa80f80d 100644 --- a/source/samrd/srv_samr_passdb.c +++ b/source/samrd/srv_samr_passdb.c @@ -485,7 +485,7 @@ uint32 _samr_add_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid) return NT_STATUS_ACCESS_DENIED; } } - else if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + else if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("add member on BUILTIN SID\n")); @@ -530,7 +530,7 @@ uint32 _samr_del_aliasmem(const POLICY_HND *alias_pol, const DOM_SID *sid) return NT_STATUS_ACCESS_DENIED; } } - else if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + else if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("del member on BUILTIN SID\n")); @@ -775,7 +775,7 @@ uint32 _samr_enum_dom_aliases(const POLICY_HND *pol, DEBUG(5,("samr_reply_enum_dom_aliases: sid %s\n", sid_str)); /* well-known aliases */ - if (sid_equal(&sid, &global_sid_S_1_5_20)) + if (sid_equal(&sid, global_sid_builtin)) { BOOL ret; /* builtin aliases */ @@ -1215,7 +1215,7 @@ uint32 _samr_query_useraliases(const POLICY_HND *pol, DEBUG(10,("sid is %s\n", dom_sid_str)); - if (sid_equal(&dom_sid, &global_sid_S_1_5_20)) + if (sid_equal(&dom_sid, global_sid_builtin)) { BOOL ret; DEBUG(10,("lookup on S-1-5-20\n")); @@ -1335,7 +1335,7 @@ uint32 _samr_query_aliasmem(const POLICY_HND *alias_pol, DEBUG(10,("sid is %s\n", alias_sid_str)); - if (sid_equal(&alias_sid, &global_sid_S_1_5_20)) + if (sid_equal(&alias_sid, global_sid_builtin)) { DEBUG(10,("lookup on S-1-5-20\n")); @@ -2470,7 +2470,7 @@ uint32 _samr_open_alias(const POLICY_HND *domain_pol, /* this should not be hard-coded like this */ if (!sid_equal(&sid, &global_sam_sid) && - !sid_equal(&sid, &global_sid_S_1_5_20)) + !sid_equal(&sid, global_sid_builtin)) { return NT_STATUS_ACCESS_DENIED; } @@ -2528,8 +2528,8 @@ uint32 _samr_lookup_domain(const POLICY_HND *connect_pol, } else if (strequal(domain, "BUILTIN")) { - sid_copy(dom_sid, &global_sid_S_1_5_20); - return 0x0; + sid_copy(dom_sid, global_sid_builtin); + return NT_STATUS_NOPROBLEMO; } return NT_STATUS_NO_SUCH_DOMAIN; diff --git a/source/samrd/srv_samr_tdb_init.c b/source/samrd/srv_samr_tdb_init.c index 1ff3c7dd44b..950f3bef3d1 100644 --- a/source/samrd/srv_samr_tdb_init.c +++ b/source/samrd/srv_samr_tdb_init.c @@ -128,7 +128,7 @@ static uint32 init_dom_tdbs(const DOM_SID * sam_sid) status = initialise_dom_tdb(sam_sid); if (status != 0x0) return status; - status = initialise_dom_tdb(&global_sid_S_1_5_20); + status = initialise_dom_tdb(global_sid_builtin); return status; } @@ -165,7 +165,7 @@ uint32 initialise_sam_tdb(const char *sam_name, const DOM_SID * sam_sid) strupper(dom_name); if (!create_domain(sam_tdb, sam_name, sam_sid) || - !create_domain(sam_tdb, "BUILTIN", &global_sid_S_1_5_20)) + !create_domain(sam_tdb, "BUILTIN", global_sid_builtin)) { tdb_close(sam_tdb); return NT_STATUS_ACCESS_DENIED; |