summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>2000-04-23 08:56:01 +0000
committerLuke Leighton <lkcl@samba.org>2000-04-23 08:56:01 +0000
commit60c17b02e9d2db0a8c0e75d79088b093d4df58cf (patch)
treef98bc0187f77af6903128ce7ae9f1cd2a1135766
parent4715c8a2c92262a14e38afad9d040305fb913655 (diff)
downloadsamba-60c17b02e9d2db0a8c0e75d79088b093d4df58cf.tar.gz
samba-60c17b02e9d2db0a8c0e75d79088b093d4df58cf.tar.xz
samba-60c17b02e9d2db0a8c0e75d79088b093d4df58cf.zip
replaced Memcpy with memcpy_zero.
-rw-r--r--source/include/lib_smb_proto.h105
-rw-r--r--source/include/proto.h71
-rw-r--r--source/include/rpc_parse_proto.h105
-rw-r--r--source/lib/util.c2
-rw-r--r--source/libsmb/pwd_cache.c12
-rw-r--r--source/rpc_parse/parse_net.c26
-rw-r--r--source/rpc_parse/parse_netsec.c8
-rw-r--r--source/rpc_parse/parse_samr.c16
-rw-r--r--source/samrd/srv_samr_usr_tdb.c4
-rw-r--r--source/smbd/chgpasswd.c4
10 files changed, 177 insertions, 176 deletions
diff --git a/source/include/lib_smb_proto.h b/source/include/lib_smb_proto.h
index e141bf678f1..19494ba9c83 100644
--- a/source/include/lib_smb_proto.h
+++ b/source/include/lib_smb_proto.h
@@ -336,6 +336,62 @@ 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 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 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_unistr3(char *desc, UNISTR3 *name, prs_struct *ps, int depth);
+
/*The following definitions come from rpc_parse/parse_net.c */
BOOL make_log_info(DOM_LOG_INFO * log,
@@ -667,6 +723,55 @@ int prs_tdb_delete(TDB_CONTEXT * tdb, prs_struct *pk);
int prs_tdb_store(TDB_CONTEXT * tdb, int flgs, prs_struct *pk, prs_struct *pd);
void prs_tdb_fetch(TDB_CONTEXT * tdb, prs_struct *pk, prs_struct *pd);
+/*The following definitions come from rpc_parse/parse_rpc.c */
+
+BOOL make_rpc_hdr(RPC_HDR * hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
+ uint32 call_id, int frag_len, int auth_len);
+BOOL smb_io_rpc_hdr(char *desc, RPC_HDR * rpc, prs_struct * ps, int depth);
+BOOL is_complete_pdu(prs_struct * ps);
+BOOL smb_io_rpc_hdr_nack(char *desc, RPC_HDR_NACK * rpc, prs_struct * ps,
+ int depth);
+BOOL smb_io_rpc_hdr_fault(char *desc, RPC_HDR_FAULT * rpc, prs_struct * ps,
+ int depth);
+BOOL smb_io_rpc_uuid(char *desc, RPC_UUID * uuid, prs_struct *ps, int depth);
+BOOL make_rpc_hdr_rb(RPC_HDR_RB * rpc,
+ uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
+ uint8 num_elements, uint16 context_id,
+ uint8 num_syntaxes, RPC_IFACE * abstract,
+ RPC_IFACE * transfer);
+BOOL smb_io_rpc_hdr_rb(char *desc, RPC_HDR_RB * rpc, prs_struct * ps,
+ int depth);
+BOOL make_rpc_hdr_ba(RPC_HDR_BA * rpc,
+ uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
+ const char *pipe_addr,
+ uint8 num_results, uint16 result, uint16 reason,
+ RPC_IFACE * transfer);
+BOOL smb_io_rpc_hdr_ba(char *desc, RPC_HDR_BA * rpc, prs_struct * ps,
+ int depth);
+BOOL make_rpc_hdr_req(RPC_HDR_REQ * hdr, uint32 alloc_hint, uint16 vuid,
+ uint16 opnum);
+BOOL smb_io_rpc_hdr_req(char *desc, RPC_HDR_REQ * rpc, prs_struct * ps,
+ int depth);
+BOOL smb_io_rpc_hdr_resp(char *desc, RPC_HDR_RESP * rpc, prs_struct * ps,
+ int depth);
+BOOL make_rpc_hdr_autha(RPC_HDR_AUTHA * rai,
+ uint16 max_tsize, uint16 max_rsize,
+ uint8 auth_type, uint8 auth_level,
+ uint8 stub_type_len);
+BOOL smb_io_rpc_hdr_autha(char *desc, RPC_HDR_AUTHA * rai, prs_struct * ps,
+ int depth);
+BOOL make_rpc_hdr_auth(RPC_HDR_AUTH * rai,
+ uint8 auth_type, uint8 auth_level,
+ uint8 stub_type_len, uint32 ptr);
+BOOL smb_io_rpc_hdr_auth(char *desc, RPC_HDR_AUTH * rai, prs_struct * ps,
+ int depth);
+BOOL make_rpc_auth_verifier(RPC_AUTH_VERIFIER * rav,
+ char *signature, uint32 msg_type);
+BOOL smb_io_rpc_auth_verifier(char *desc, RPC_AUTH_VERIFIER * rav,
+ prs_struct * ps, int depth);
+BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav,
+ char *signature, uint32 msg_type);
+
/*The following definitions come from rpc_parse/parse_vuid.c */
BOOL vuid_io_key(char *desc, vuser_key * r_u, prs_struct * ps, int depth);
diff --git a/source/include/proto.h b/source/include/proto.h
index 24ecc99d799..f2d8b95c548 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -584,7 +584,7 @@ void become_daemon(void);
BOOL yesno(char *p);
int set_filelen(int fd, SMB_OFF_T len);
void *Realloc(void *p, size_t size);
-BOOL Memcpy(void *to, const void *from, size_t size);
+BOOL memcpy_zero(void *to, const void *from, size_t size);
void safe_free(void *p);
BOOL get_myname(char *my_name, struct in_addr *ip);
int interpret_protocol(char *str, int def);
@@ -1794,11 +1794,12 @@ enum winbindd_result winbindd_getgrent(struct winbindd_state *state);
/*The following definitions come from nsswitch/winbindd_surs.c */
-BOOL winbindd_surs_init(void);
-BOOL winbindd_surs_sam_sid_to_unixid(DOM_SID *sid,
+BOOL winbindd_surs_sam_sid_to_unixid(struct winbindd_domain *domain,
+ DOM_SID *sid,
enum SID_NAME_USE name_type,
POSIX_ID *id);
-BOOL winbindd_surs_unixid_to_sam_sid(POSIX_ID *id, DOM_SID *sid, BOOL create);
+BOOL winbindd_surs_unixid_to_sam_sid(struct winbindd_domain *domain,
+ POSIX_ID *id, DOM_SID *sid);
/*The following definitions come from nsswitch/winbindd_user.c */
@@ -1810,39 +1811,36 @@ enum winbindd_result winbindd_getpwent(struct winbindd_state *state);
/*The following definitions come from nsswitch/winbindd_util.c */
-BOOL lookup_domain_sid(fstring domain_name, DOM_SID *domain_sid,
- fstring domain_controller);
-BOOL winbindd_lookup_by_name(char *system_name, DOM_SID *level5_sid,
- fstring name, DOM_SID *sid,
- enum SID_NAME_USE *type);
-int winbindd_lookup_by_sid(char *system_name, DOM_SID *level5_sid,
- DOM_SID *sid, char *name,
- enum SID_NAME_USE *type);
-int winbindd_lookup_userinfo(char *system_name, DOM_SID *dom_sid,
- uint32 user_rid, POLICY_HND *sam_dom_handle,
- SAM_USERINFO_CTR *user_info);
-int winbindd_lookup_groupinfo(char *system_name, DOM_SID *dom_sid,
+BOOL lookup_domain_sid(fstring domain_name, struct winbindd_domain *domain);
+BOOL get_domain_info(struct winbindd_domain *domain);
+BOOL open_lsa_handle(struct winbindd_domain *domain);
+BOOL open_sam_handles(struct winbindd_domain *domain);
+BOOL winbindd_lookup_sid_by_name(struct winbindd_domain *domain,
+ fstring name, DOM_SID *sid,
+ enum SID_NAME_USE *type);
+BOOL winbindd_lookup_name_by_sid(struct winbindd_domain *domain,
+ DOM_SID *sid, char *name,
+ enum SID_NAME_USE *type);
+BOOL winbindd_lookup_userinfo(struct winbindd_domain *domain,
+ uint32 user_rid, SAM_USERINFO_CTR *user_info);
+BOOL winbindd_lookup_groupinfo(struct winbindd_domain *domain,
uint32 group_rid, GROUP_INFO_CTR *info);
-int winbindd_lookup_groupmem(char *system_name, DOM_SID *dom_sid,
- uint32 group_rid, POLICY_HND *sam_dom_handle,
- uint32 *num_names, uint32 **rid_mem,
- char ***names, uint32 **name_types);
-int winbindd_lookup_aliasmem(char *system_name, DOM_SID *dom_sid,
- uint32 alias_rid, POLICY_HND *sam_dom_handle,
- uint32 *num_names, DOM_SID ***sids,
- char ***names, uint32 **name_types);
-int winbindd_lookup_aliasinfo(char *system_name, DOM_SID *dom_sid,
+BOOL winbindd_lookup_groupmem(struct winbindd_domain *domain,
+ uint32 group_rid, uint32 *num_names,
+ uint32 **rid_mem, char ***names,
+ enum SID_NAME_USE **name_types);
+int winbindd_lookup_aliasmem(struct winbindd_domain *domain,
+ uint32 alias_rid, uint32 *num_names,
+ DOM_SID ***sids, char ***names,
+ enum SID_NAME_USE **name_types);
+int winbindd_lookup_aliasinfo(struct winbindd_domain *domain,
uint32 alias_rid, ALIAS_INFO_CTR *info);
struct winbindd_domain *find_domain_from_name(char *domain_name);
-BOOL find_domain_sid_from_name(char *domain_name, DOM_SID *domain_sid,
- char *domain_controller);
-BOOL find_domain_sid_from_uid(uid_t uid, DOM_SID *domain_sid,
- char *domain_name,
- char *domain_controller);
-BOOL find_domain_sid_from_gid(gid_t gid, DOM_SID *domain_sid,
- char *domain_controller,
- char *domain_name);
+struct winbindd_domain *find_domain_sid_from_name(char *domain_name);
+struct winbindd_domain *find_domain_from_uid(uid_t uid);
+struct winbindd_domain *find_domain_from_gid(gid_t gid);
void free_getent_state(struct getent_state *state);
+BOOL winbindd_param_init(void);
/*The following definitions come from param/loadparm.c */
@@ -2383,6 +2381,11 @@ int cups_printername_ok(char *name);
void sysv_printer_fn(void (*fn)(char *, char *));
int sysv_printername_ok(char *name);
+/*The following definitions come from printing/printfsp.c */
+
+files_struct *print_fsp_open(connection_struct *conn,char *jobname);
+void print_fsp_end(files_struct *fsp);
+
/*The following definitions come from printing/printing.c */
BOOL print_backend_init(void);
@@ -2405,8 +2408,6 @@ int print_queue_snum(char *qname);
BOOL print_queue_pause(int snum);
BOOL print_queue_resume(int snum);
BOOL print_queue_purge(int snum);
-files_struct *print_fsp_open(connection_struct *conn,char *jobname);
-void print_fsp_end(files_struct *fsp);
/*The following definitions come from profile/profile.c */
diff --git a/source/include/rpc_parse_proto.h b/source/include/rpc_parse_proto.h
index 7dd3088ac24..6d48a849e00 100644
--- a/source/include/rpc_parse_proto.h
+++ b/source/include/rpc_parse_proto.h
@@ -177,62 +177,6 @@ BOOL smb_io_dom_rid2(char *desc, DOM_RID2 *rid2, prs_struct *ps, int depth);
BOOL lsa_io_r_query(char *desc, LSA_R_QUERY_INFO * r_q,
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 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 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_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);
@@ -370,55 +314,6 @@ BOOL reg_io_q_shutdown(char *desc, REG_Q_SHUTDOWN * q_q, prs_struct *ps,
BOOL reg_io_r_shutdown(char *desc, REG_R_SHUTDOWN * r_q, prs_struct *ps,
int depth);
-/*The following definitions come from rpc_parse/parse_rpc.c */
-
-BOOL make_rpc_hdr(RPC_HDR * hdr, enum RPC_PKT_TYPE pkt_type, uint8 flags,
- uint32 call_id, int frag_len, int auth_len);
-BOOL smb_io_rpc_hdr(char *desc, RPC_HDR * rpc, prs_struct * ps, int depth);
-BOOL is_complete_pdu(prs_struct * ps);
-BOOL smb_io_rpc_hdr_nack(char *desc, RPC_HDR_NACK * rpc, prs_struct * ps,
- int depth);
-BOOL smb_io_rpc_hdr_fault(char *desc, RPC_HDR_FAULT * rpc, prs_struct * ps,
- int depth);
-BOOL smb_io_rpc_uuid(char *desc, RPC_UUID * uuid, prs_struct *ps, int depth);
-BOOL make_rpc_hdr_rb(RPC_HDR_RB * rpc,
- uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
- uint8 num_elements, uint16 context_id,
- uint8 num_syntaxes, RPC_IFACE * abstract,
- RPC_IFACE * transfer);
-BOOL smb_io_rpc_hdr_rb(char *desc, RPC_HDR_RB * rpc, prs_struct * ps,
- int depth);
-BOOL make_rpc_hdr_ba(RPC_HDR_BA * rpc,
- uint16 max_tsize, uint16 max_rsize, uint32 assoc_gid,
- const char *pipe_addr,
- uint8 num_results, uint16 result, uint16 reason,
- RPC_IFACE * transfer);
-BOOL smb_io_rpc_hdr_ba(char *desc, RPC_HDR_BA * rpc, prs_struct * ps,
- int depth);
-BOOL make_rpc_hdr_req(RPC_HDR_REQ * hdr, uint32 alloc_hint, uint16 vuid,
- uint16 opnum);
-BOOL smb_io_rpc_hdr_req(char *desc, RPC_HDR_REQ * rpc, prs_struct * ps,
- int depth);
-BOOL smb_io_rpc_hdr_resp(char *desc, RPC_HDR_RESP * rpc, prs_struct * ps,
- int depth);
-BOOL make_rpc_hdr_autha(RPC_HDR_AUTHA * rai,
- uint16 max_tsize, uint16 max_rsize,
- uint8 auth_type, uint8 auth_level,
- uint8 stub_type_len);
-BOOL smb_io_rpc_hdr_autha(char *desc, RPC_HDR_AUTHA * rai, prs_struct * ps,
- int depth);
-BOOL make_rpc_hdr_auth(RPC_HDR_AUTH * rai,
- uint8 auth_type, uint8 auth_level,
- uint8 stub_type_len, uint32 ptr);
-BOOL smb_io_rpc_hdr_auth(char *desc, RPC_HDR_AUTH * rai, prs_struct * ps,
- int depth);
-BOOL make_rpc_auth_verifier(RPC_AUTH_VERIFIER * rav,
- char *signature, uint32 msg_type);
-BOOL smb_io_rpc_auth_verifier(char *desc, RPC_AUTH_VERIFIER * rav,
- prs_struct * ps, int depth);
-BOOL rpc_auth_verifier_chk(RPC_AUTH_VERIFIER * rav,
- char *signature, uint32 msg_type);
-
/*The following definitions come from rpc_parse/parse_samr.c */
BOOL make_samr_q_close_hnd(SAMR_Q_CLOSE_HND * q_c, POLICY_HND *hnd);
diff --git a/source/lib/util.c b/source/lib/util.c
index ad4d1f262a1..5b9e423b9ad 100644
--- a/source/lib/util.c
+++ b/source/lib/util.c
@@ -1688,7 +1688,7 @@ void *Realloc(void *p, size_t size)
/****************************************************************************
protected memcpy that deals with NULL parameters.
****************************************************************************/
-BOOL Memcpy(void *to, const void *from, size_t size)
+BOOL memcpy_zero(void *to, const void *from, size_t size)
{
if (to == NULL)
{
diff --git a/source/libsmb/pwd_cache.c b/source/libsmb/pwd_cache.c
index 6c6fb567e99..8ee5cb386de 100644
--- a/source/libsmb/pwd_cache.c
+++ b/source/libsmb/pwd_cache.c
@@ -166,8 +166,8 @@ void pwd_set_lm_nt_16(struct pwd_info *pwd,
{
pwd_init(pwd);
- Memcpy(pwd->smb_lm_pwd, lm_pwd, 16);
- Memcpy(pwd->smb_nt_pwd, nt_pwd, 16);
+ memcpy_zero(pwd->smb_lm_pwd, lm_pwd, 16);
+ memcpy_zero(pwd->smb_nt_pwd, nt_pwd, 16);
pwd->null_pwd = False;
pwd->cleartext = False;
@@ -181,8 +181,8 @@ void pwd_set_lm_nt_16(struct pwd_info *pwd,
void pwd_get_lm_nt_16(const struct pwd_info *pwd, uchar lm_pwd[16],
uchar nt_pwd[16])
{
- Memcpy(lm_pwd, pwd->smb_lm_pwd, 16);
- Memcpy(nt_pwd, pwd->smb_nt_pwd, 16);
+ memcpy_zero(lm_pwd, pwd->smb_lm_pwd, 16);
+ memcpy_zero(nt_pwd, pwd->smb_nt_pwd, 16);
}
/****************************************************************************
@@ -325,8 +325,8 @@ void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24],
return;
}
- Memcpy(lm_owf, pwd->smb_lm_owf, 24);
- Memcpy(nt_owf, pwd->smb_nt_owf, pwd->nt_owf_len);
+ memcpy_zero(lm_owf, pwd->smb_lm_owf, 24);
+ memcpy_zero(nt_owf, pwd->smb_nt_owf, pwd->nt_owf_len);
if (nt_owf_len != NULL)
{
diff --git a/source/rpc_parse/parse_net.c b/source/rpc_parse/parse_net.c
index cdd4a951f45..5fa1d25fba1 100644
--- a/source/rpc_parse/parse_net.c
+++ b/source/rpc_parse/parse_net.c
@@ -162,7 +162,7 @@ BOOL make_clnt_info2(DOM_CLNT_INFO2 * clnt,
make_clnt_srv(&(clnt->login), logon_srv, comp_name);
- clnt->ptr_cred = Memcpy(&clnt->cred, clnt_cred, sizeof(clnt->cred));
+ clnt->ptr_cred = memcpy_zero(&clnt->cred, clnt_cred, sizeof(clnt->cred));
return True;
}
@@ -205,7 +205,7 @@ BOOL make_clnt_info(DOM_CLNT_INFO * clnt,
make_log_info(&(clnt->login), logon_srv, acct_name, sec_chan,
comp_name);
- Memcpy(&clnt->cred, cred, sizeof(clnt->cred));
+ memcpy_zero(&clnt->cred, cred, sizeof(clnt->cred));
return True;
}
@@ -240,7 +240,7 @@ BOOL make_owf_info(OWF_INFO * hash, const uint8 data[16])
DEBUG(5, ("make_owf_info: %d\n", __LINE__));
- Memcpy(hash->data, data, sizeof(hash->data));
+ memcpy_zero(hash->data, data, sizeof(hash->data));
return True;
}
@@ -422,7 +422,7 @@ BOOL make_r_logon_ctrl2(NET_R_LOGON_CTRL2 * r_l,
r_l->switch_value = switch_value; /* should only be 0x1 */
r_l->status = status;
- Memcpy(&r_l->logon, logon_info, sizeof(NETLOGON_INFO));
+ memcpy_zero(&r_l->logon, logon_info, sizeof(NETLOGON_INFO));
if (status == NT_STATUS_NOPROBLEMO)
{
@@ -1194,7 +1194,7 @@ BOOL make_sam_info(DOM_SAM_INFO * sam,
make_clnt_info2(&(sam->client), logon_srv, comp_name, clnt_cred);
sam->ptr_rtn_cred =
- Memcpy(&sam->rtn_cred, rtn_cred, sizeof(sam->rtn_cred));
+ memcpy_zero(&sam->rtn_cred, rtn_cred, sizeof(sam->rtn_cred));
sam->logon_level = logon_level;
sam->ctr = ctr;
@@ -1342,14 +1342,14 @@ BOOL make_net_user_info2W(NET_USER_INFO_2 * usr,
usr->buffer_groups = 1; /* indicates fill in groups, below, even if there are none */
usr->user_flgs = user_flgs;
- Memcpy(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
+ memcpy_zero(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
make_uni_hdr(&(usr->hdr_logon_srv), len_logon_srv);
make_uni_hdr(&(usr->hdr_logon_dom), len_logon_dom);
usr->buffer_dom_id = dom_sid ? 1 : 0; /* yes, put a domain SID in */
- Memcpy(usr->padding, padding, sizeof(usr->padding));
+ memcpy_zero(usr->padding, padding, sizeof(usr->padding));
copy_unistr2(&(usr->uni_user_name), user_name);
copy_unistr2(&(usr->uni_full_name), full_name);
@@ -1440,14 +1440,14 @@ BOOL make_net_user_info2(NET_USER_INFO_2 * usr,
usr->buffer_groups = 1; /* indicates fill in groups, below, even if there are none */
usr->user_flgs = user_flgs;
- Memcpy(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
+ memcpy_zero(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
make_uni_hdr(&(usr->hdr_logon_srv), len_logon_srv);
make_uni_hdr(&(usr->hdr_logon_dom), len_logon_dom);
usr->buffer_dom_id = dom_sid ? 1 : 0; /* yes, we're bothering to put a domain SID in */
- Memcpy(usr->padding, padding, sizeof(usr->padding));
+ memcpy_zero(usr->padding, padding, sizeof(usr->padding));
make_unistr2(&(usr->uni_user_name), user_name, len_user_name);
make_unistr2(&(usr->uni_full_name), full_name, len_full_name);
@@ -1693,14 +1693,14 @@ BOOL make_net_user_info3W(NET_USER_INFO_3 * usr,
usr->buffer_groups = 1; /* indicates fill in groups, below, even if there are none */
usr->user_flgs = user_flgs;
- Memcpy(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
+ memcpy_zero(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
make_uni_hdr(&(usr->hdr_logon_srv), len_logon_srv);
make_uni_hdr(&(usr->hdr_logon_dom), len_logon_dom);
usr->buffer_dom_id = dom_sid ? 1 : 0; /* yes, put a domain SID in */
- Memcpy(usr->padding, padding, sizeof(usr->padding));
+ memcpy_zero(usr->padding, padding, sizeof(usr->padding));
num_other_sids =
make_dom_sid2s(other_sids, usr->other_sids, LSA_MAX_SIDS);
@@ -1799,14 +1799,14 @@ BOOL make_net_user_info3(NET_USER_INFO_3 * usr,
usr->buffer_groups = 1; /* indicates fill in groups, below, even if there are none */
usr->user_flgs = user_flgs;
- Memcpy(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
+ memcpy_zero(usr->user_sess_key, sess_key, sizeof(usr->user_sess_key));
make_uni_hdr(&(usr->hdr_logon_srv), len_logon_srv);
make_uni_hdr(&(usr->hdr_logon_dom), len_logon_dom);
usr->buffer_dom_id = dom_sid ? 1 : 0; /* yes, we're bothering to put a domain SID in */
- Memcpy(usr->padding, padding, sizeof(usr->padding));
+ memcpy_zero(usr->padding, padding, sizeof(usr->padding));
num_other_sids =
make_dom_sid2s(other_sids, usr->other_sids, LSA_MAX_SIDS);
diff --git a/source/rpc_parse/parse_netsec.c b/source/rpc_parse/parse_netsec.c
index 94cdbe64fe2..fd867a85618 100644
--- a/source/rpc_parse/parse_netsec.c
+++ b/source/rpc_parse/parse_netsec.c
@@ -142,10 +142,10 @@ BOOL make_rpc_auth_netsec_chk(RPC_AUTH_NETSEC_CHK * chk,
if (chk == NULL)
return False;
- Memcpy(chk->sig, sig, sizeof(chk->sig));
- Memcpy(chk->data1, data1, sizeof(chk->data1));
- Memcpy(chk->data3, data3, sizeof(chk->data3));
- Memcpy(chk->data8, data8, sizeof(chk->data8));
+ memcpy_zero(chk->sig, sig, sizeof(chk->sig));
+ memcpy_zero(chk->data1, data1, sizeof(chk->data1));
+ memcpy_zero(chk->data3, data3, sizeof(chk->data3));
+ memcpy_zero(chk->data8, data8, sizeof(chk->data8));
return True;
}
diff --git a/source/rpc_parse/parse_samr.c b/source/rpc_parse/parse_samr.c
index aea144171ba..c6b4fe3d3f3 100644
--- a/source/rpc_parse/parse_samr.c
+++ b/source/rpc_parse/parse_samr.c
@@ -4962,9 +4962,9 @@ BOOL make_sam_user_info12(SAM_USER_INFO_12 * usr,
DEBUG(5, ("make_sam_user_info12\n"));
usr->lm_pwd_active =
- Memcpy(usr->lm_pwd, lm_pwd, sizeof(usr->lm_pwd)) ? 1 : 0;
+ memcpy_zero(usr->lm_pwd, lm_pwd, sizeof(usr->lm_pwd)) ? 1 : 0;
usr->nt_pwd_active =
- Memcpy(usr->nt_pwd, nt_pwd, sizeof(usr->nt_pwd)) ? 1 : 0;
+ memcpy_zero(usr->nt_pwd, nt_pwd, sizeof(usr->nt_pwd)) ? 1 : 0;
return True;
}
@@ -5260,7 +5260,7 @@ BOOL make_sam_user_info23W(SAM_USER_INFO_23 * usr, const NTTIME * logon_time, /*
usr->unknown_6 = unknown_6; /* 0x0000 04ec */
usr->padding4 = 0;
- Memcpy(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
+ memcpy_zero(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
return True;
}
@@ -5349,7 +5349,7 @@ BOOL make_sam_user_info23A(SAM_USER_INFO_23 * usr, NTTIME * logon_time, /* all z
usr->unknown_6 = unknown_6; /* 0x0000 04ec */
usr->padding4 = 0;
- Memcpy(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
+ memcpy_zero(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
return True;
}
@@ -5528,8 +5528,8 @@ BOOL make_sam_user_info21W(SAM_USER_INFO_21 * usr,
make_uni_hdr(&(usr->hdr_unknown_str), len_unknown_str);
make_uni_hdr(&(usr->hdr_munged_dial), len_munged_dial);
- Memcpy(usr->lm_pwd, lm_pwd, sizeof(usr->lm_pwd));
- Memcpy(usr->nt_pwd, nt_pwd, sizeof(usr->nt_pwd));
+ memcpy_zero(usr->lm_pwd, lm_pwd, sizeof(usr->lm_pwd));
+ memcpy_zero(usr->nt_pwd, nt_pwd, sizeof(usr->nt_pwd));
usr->user_rid = user_rid;
usr->group_rid = group_rid;
@@ -5556,7 +5556,7 @@ BOOL make_sam_user_info21W(SAM_USER_INFO_21 * usr,
usr->unknown_6 = unknown_6; /* 0x0000 04ec */
usr->padding4 = 0;
- Memcpy(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
+ memcpy_zero(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
return True;
}
@@ -5651,7 +5651,7 @@ BOOL make_sam_user_info21A(SAM_USER_INFO_21 * usr,
usr->unknown_6 = unknown_6; /* 0x0000 04ec */
usr->padding4 = 0;
- Memcpy(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
+ memcpy_zero(&(usr->logon_hrs), hrs, sizeof(usr->logon_hrs));
return True;
}
diff --git a/source/samrd/srv_samr_usr_tdb.c b/source/samrd/srv_samr_usr_tdb.c
index 434accd2403..42b5e9b116b 100644
--- a/source/samrd/srv_samr_usr_tdb.c
+++ b/source/samrd/srv_samr_usr_tdb.c
@@ -245,8 +245,8 @@ static BOOL tdb_set_userinfo_pwds(TDB_CONTEXT * tdb,
return False;
}
- Memcpy(usr.lm_pwd, lm_pwd, sizeof(usr.lm_pwd));
- Memcpy(usr.nt_pwd, nt_pwd, sizeof(usr.nt_pwd));
+ memcpy_zero(usr.lm_pwd, lm_pwd, sizeof(usr.lm_pwd));
+ memcpy_zero(usr.nt_pwd, nt_pwd, sizeof(usr.nt_pwd));
if (!tdb_store_user(tdb, &usr))
{
diff --git a/source/smbd/chgpasswd.c b/source/smbd/chgpasswd.c
index 5a69b751b71..15e2c74b470 100644
--- a/source/smbd/chgpasswd.c
+++ b/source/smbd/chgpasswd.c
@@ -566,8 +566,8 @@ static BOOL check_oem_password(const char *user,
BOOL nt_pass_set = (_ntdata != NULL && nthash != NULL);
- Memcpy(lmdata, _lmdata, sizeof(lmdata));
- Memcpy(ntdata, _ntdata, sizeof(ntdata));
+ memcpy_zero(lmdata, _lmdata, sizeof(lmdata));
+ memcpy_zero(ntdata, _ntdata, sizeof(ntdata));
become_root(False);
(*psmbpw) = smbpw = getsmbpwnam(user);