summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-03-13 00:01:04 +0000
committerLuke Leighton <lkcl@samba.org>2000-03-13 00:01:04 +0000
commit2fac7ee8856536564f415e69ba5d01ddd4d21bff (patch)
treece546e7ed1613f481e7064a9ba767aa32e637167
parent1ea08db66cb64a8b932a16c95ef1109af322abea (diff)
downloadsamba-2fac7ee8856536564f415e69ba5d01ddd4d21bff.tar.gz
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.in5
-rw-r--r--source/include/lib_smb_proto.h77
-rw-r--r--source/include/proto.h148
-rw-r--r--source/include/rpc_parse_proto.h79
-rw-r--r--source/include/sids.h1
-rw-r--r--source/include/winbindd_proto.h79
-rw-r--r--source/lib/domain_namemap.c2
-rw-r--r--source/lib/sids.c2
-rw-r--r--source/lib/util_pwdb.c6
-rw-r--r--source/lib/util_seaccess.c4
-rw-r--r--source/lsarpcd/srv_lsa_samdb.c2
-rw-r--r--source/rpc_parse/parse_misc.c4
-rw-r--r--source/rpc_parse/parse_samr.c60
-rw-r--r--source/rpc_server/srv_lookup.c6
-rw-r--r--source/rpcclient/cmd_samr.c3
-rw-r--r--source/samrd/samr_util.c4
-rw-r--r--source/samrd/srv_samr_als_tdb.c8
-rw-r--r--source/samrd/srv_samr_dom_tdb.c2
-rw-r--r--source/samrd/srv_samr_passdb.c16
-rw-r--r--source/samrd/srv_samr_tdb_init.c4
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;