diff options
Diffstat (limited to 'source3/rpc_parse/parse_net.c')
-rw-r--r-- | source3/rpc_parse/parse_net.c | 294 |
1 files changed, 197 insertions, 97 deletions
diff --git a/source3/rpc_parse/parse_net.c b/source3/rpc_parse/parse_net.c index 79b49855a9..e2073d00f1 100644 --- a/source3/rpc_parse/parse_net.c +++ b/source3/rpc_parse/parse_net.c @@ -29,9 +29,9 @@ extern int DEBUGLEVEL; /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_neg_flags(char *desc, NEG_FLAGS *neg, prs_struct *ps, int depth) +static BOOL net_io_neg_flags(char *desc, NEG_FLAGS *neg, prs_struct *ps, int depth) { - if (neg == NULL) return; + if (neg == NULL) return False; prs_debug(ps, depth, desc, "net_io_neg_flags"); depth++; @@ -39,12 +39,14 @@ static void net_io_neg_flags(char *desc, NEG_FLAGS *neg, prs_struct *ps, int de prs_align(ps); prs_uint32("neg_flags", ps, depth, &(neg->neg_flags)); + + return True; } /******************************************************************* creates a NETLOGON_INFO_3 structure. ********************************************************************/ -static void make_netinfo_3(NETLOGON_INFO_3 *info, uint32 flags, uint32 logon_attempts) +static BOOL make_netinfo_3(NETLOGON_INFO_3 *info, uint32 flags, uint32 logon_attempts) { info->flags = flags; info->logon_attempts = logon_attempts; @@ -53,14 +55,16 @@ static void make_netinfo_3(NETLOGON_INFO_3 *info, uint32 flags, uint32 logon_att info->reserved_3 = 0x0; info->reserved_4 = 0x0; info->reserved_5 = 0x0; + + return True; } /******************************************************************* reads or writes a NETLOGON_INFO_3 structure. ********************************************************************/ -static void net_io_netinfo_3(char *desc, NETLOGON_INFO_3 *info, prs_struct *ps, int depth) +static BOOL net_io_netinfo_3(char *desc, NETLOGON_INFO_3 *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_netinfo_3"); depth++; @@ -74,24 +78,28 @@ static void net_io_netinfo_3(char *desc, NETLOGON_INFO_3 *info, prs_struct *ps, prs_uint32("reserved_3 ", ps, depth, &(info->reserved_3 )); prs_uint32("reserved_4 ", ps, depth, &(info->reserved_4 )); prs_uint32("reserved_5 ", ps, depth, &(info->reserved_5 )); + + return True; } /******************************************************************* creates a NETLOGON_INFO_1 structure. ********************************************************************/ -static void make_netinfo_1(NETLOGON_INFO_1 *info, uint32 flags, uint32 pdc_status) +static BOOL make_netinfo_1(NETLOGON_INFO_1 *info, uint32 flags, uint32 pdc_status) { info->flags = flags; info->pdc_status = pdc_status; + + return True; } /******************************************************************* reads or writes a NETLOGON_INFO_1 structure. ********************************************************************/ -static void net_io_netinfo_1(char *desc, NETLOGON_INFO_1 *info, prs_struct *ps, int depth) +static BOOL net_io_netinfo_1(char *desc, NETLOGON_INFO_1 *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_netinfo_1"); depth++; @@ -100,12 +108,14 @@ static void net_io_netinfo_1(char *desc, NETLOGON_INFO_1 *info, prs_struct *ps, prs_uint32("flags ", ps, depth, &(info->flags )); prs_uint32("pdc_status", ps, depth, &(info->pdc_status)); + + return True; } /******************************************************************* creates a NETLOGON_INFO_2 structure. ********************************************************************/ -static void make_netinfo_2(NETLOGON_INFO_2 *info, uint32 flags, uint32 pdc_status, +static BOOL make_netinfo_2(NETLOGON_INFO_2 *info, uint32 flags, uint32 pdc_status, uint32 tc_status, char *trusted_dc_name) { int len_dc_name = strlen(trusted_dc_name); @@ -122,14 +132,16 @@ static void make_netinfo_2(NETLOGON_INFO_2 *info, uint32 flags, uint32 pdc_statu { make_unistr2(&(info->uni_trusted_dc_name), "", 1); } + + return True; } /******************************************************************* reads or writes a NETLOGON_INFO_2 structure. ********************************************************************/ -static void net_io_netinfo_2(char *desc, NETLOGON_INFO_2 *info, prs_struct *ps, int depth) +static BOOL net_io_netinfo_2(char *desc, NETLOGON_INFO_2 *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_netinfo_2"); depth++; @@ -147,14 +159,16 @@ static void net_io_netinfo_2(char *desc, NETLOGON_INFO_2 *info, prs_struct *ps, } prs_align(ps); + + return True; } /******************************************************************* reads or writes an NET_Q_LOGON_CTRL2 structure. ********************************************************************/ -void net_io_q_logon_ctrl2(char *desc, NET_Q_LOGON_CTRL2 *q_l, prs_struct *ps, int depth) +BOOL net_io_q_logon_ctrl2(char *desc, NET_Q_LOGON_CTRL2 *q_l, prs_struct *ps, int depth) { - if (q_l == NULL) return; + if (q_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_logon_ctrl2"); depth++; @@ -170,16 +184,18 @@ void net_io_q_logon_ctrl2(char *desc, NET_Q_LOGON_CTRL2 *q_l, prs_struct *ps, i prs_uint32("function_code", ps, depth, &(q_l->function_code)); prs_uint32("query_level ", ps, depth, &(q_l->query_level )); prs_uint32("switch_value ", ps, depth, &(q_l->switch_value )); + + return True; } /******************************************************************* makes an NET_R_LOGON_CTRL2 structure. ********************************************************************/ -void make_r_logon_ctrl2(NET_R_LOGON_CTRL2 *r_l, uint32 query_level, +BOOL make_r_logon_ctrl2(NET_R_LOGON_CTRL2 *r_l, uint32 query_level, uint32 flags, uint32 pdc_status, uint32 logon_attempts, uint32 tc_status, char *trusted_domain_name) { - if (r_l == NULL) return; + if (r_l == NULL) return False; DEBUG(5,("make_r_logon_ctrl2\n")); @@ -224,14 +240,16 @@ void make_r_logon_ctrl2(NET_R_LOGON_CTRL2 *r_l, uint32 query_level, break; } } + + return True; } /******************************************************************* reads or writes an NET_R_LOGON_CTRL2 structure. ********************************************************************/ -void net_io_r_logon_ctrl2(char *desc, NET_R_LOGON_CTRL2 *r_l, prs_struct *ps, int depth) +BOOL net_io_r_logon_ctrl2(char *desc, NET_R_LOGON_CTRL2 *r_l, prs_struct *ps, int depth) { - if (r_l == NULL) return; + if (r_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_logon_ctrl2"); depth++; @@ -268,17 +286,19 @@ void net_io_r_logon_ctrl2(char *desc, NET_R_LOGON_CTRL2 *r_l, prs_struct *ps, i } prs_uint32("status ", ps, depth, &(r_l->status )); + + return True; } /******************************************************************* makes an NET_R_TRUST_DOM_LIST structure. ********************************************************************/ -void make_r_trust_dom(NET_R_TRUST_DOM_LIST *r_t, +BOOL make_r_trust_dom(NET_R_TRUST_DOM_LIST *r_t, uint32 num_doms, char *dom_name) { int i = 0; - if (r_t == NULL) return; + if (r_t == NULL) return False; DEBUG(5,("make_r_trust_dom\n")); @@ -300,15 +320,17 @@ void make_r_trust_dom(NET_R_TRUST_DOM_LIST *r_t, } r_t->status = 0; + + return True; } /******************************************************************* reads or writes an NET_R_TRUST_DOM_LIST structure. ********************************************************************/ -void net_io_r_trust_dom(char *desc, NET_R_TRUST_DOM_LIST *r_t, prs_struct *ps, int depth) +BOOL net_io_r_trust_dom(char *desc, NET_R_TRUST_DOM_LIST *r_t, prs_struct *ps, int depth) { int i; - if (r_t == NULL) return; + if (r_t == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_trust_dom"); depth++; @@ -320,15 +342,17 @@ void net_io_r_trust_dom(char *desc, NET_R_TRUST_DOM_LIST *r_t, prs_struct *ps, } prs_uint32("status", ps, depth, &(r_t->status)); + + return True; } /******************************************************************* reads or writes an NET_Q_TRUST_DOM_LIST structure. ********************************************************************/ -void net_io_q_trust_dom(char *desc, NET_Q_TRUST_DOM_LIST *q_l, prs_struct *ps, int depth) +BOOL net_io_q_trust_dom(char *desc, NET_Q_TRUST_DOM_LIST *q_l, prs_struct *ps, int depth) { - if (q_l == NULL) return; + if (q_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_trust_dom"); depth++; @@ -339,16 +363,18 @@ void net_io_q_trust_dom(char *desc, NET_Q_TRUST_DOM_LIST *q_l, prs_struct *ps, prs_align(ps); prs_uint32("function_code", ps, depth, &(q_l->function_code)); + + return True; } /******************************************************************* makes an NET_Q_REQ_CHAL structure. ********************************************************************/ -void make_q_req_chal(NET_Q_REQ_CHAL *q_c, +BOOL make_q_req_chal(NET_Q_REQ_CHAL *q_c, char *logon_srv, char *logon_clnt, DOM_CHAL *clnt_chal) { - if (q_c == NULL) return; + if (q_c == NULL) return False; DEBUG(5,("make_q_req_chal: %d\n", __LINE__)); @@ -360,15 +386,17 @@ void make_q_req_chal(NET_Q_REQ_CHAL *q_c, memcpy(q_c->clnt_chal.data, clnt_chal->data, sizeof(clnt_chal->data)); DEBUG(5,("make_q_req_chal: %d\n", __LINE__)); + + return True; } /******************************************************************* reads or writes an NET_Q_REQ_CHAL structure. ********************************************************************/ -void net_io_q_req_chal(char *desc, NET_Q_REQ_CHAL *q_c, prs_struct *ps, int depth) +BOOL net_io_q_req_chal(char *desc, NET_Q_REQ_CHAL *q_c, prs_struct *ps, int depth) { int old_align; - if (q_c == NULL) return; + if (q_c == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_req_chal"); depth++; @@ -385,14 +413,16 @@ void net_io_q_req_chal(char *desc, NET_Q_REQ_CHAL *q_c, prs_struct *ps, int dep /* client challenge is _not_ aligned after the unicode strings */ smb_io_chal("", &(q_c->clnt_chal), ps, depth); /* client challenge */ ps->align = old_align; + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_req_chal(char *desc, NET_R_REQ_CHAL *r_c, prs_struct *ps, int depth) +BOOL net_io_r_req_chal(char *desc, NET_R_REQ_CHAL *r_c, prs_struct *ps, int depth) { - if (r_c == NULL) return; + if (r_c == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_req_chal"); depth++; @@ -402,18 +432,20 @@ void net_io_r_req_chal(char *desc, NET_R_REQ_CHAL *r_c, prs_struct *ps, int dep smb_io_chal("", &(r_c->srv_chal), ps, depth); /* server challenge */ prs_uint32("status", ps, depth, &(r_c->status)); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void make_q_auth_2(NET_Q_AUTH_2 *q_a, +BOOL make_q_auth_2(NET_Q_AUTH_2 *q_a, const char *logon_srv, const char *acct_name, uint16 sec_chan, const char *comp_name, DOM_CHAL *clnt_chal, uint32 clnt_flgs) { - if (q_a == NULL) return; + if (q_a == NULL) return False; DEBUG(5,("make_q_auth_2: %d\n", __LINE__)); @@ -422,15 +454,17 @@ void make_q_auth_2(NET_Q_AUTH_2 *q_a, q_a->clnt_flgs.neg_flags = clnt_flgs; DEBUG(5,("make_q_auth_2: %d\n", __LINE__)); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_q_auth_2(char *desc, NET_Q_AUTH_2 *q_a, prs_struct *ps, int depth) +BOOL net_io_q_auth_2(char *desc, NET_Q_AUTH_2 *q_a, prs_struct *ps, int depth) { int old_align; - if (q_a == NULL) return; + if (q_a == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_auth_2"); depth++; @@ -444,14 +478,16 @@ void net_io_q_auth_2(char *desc, NET_Q_AUTH_2 *q_a, prs_struct *ps, int depth) smb_io_chal ("", &(q_a->clnt_chal), ps, depth); /* client-calculated credentials */ ps->align = old_align; net_io_neg_flags("", &(q_a->clnt_flgs), ps, depth); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_auth_2(char *desc, NET_R_AUTH_2 *r_a, prs_struct *ps, int depth) +BOOL net_io_r_auth_2(char *desc, NET_R_AUTH_2 *r_a, prs_struct *ps, int depth) { - if (r_a == NULL) return; + if (r_a == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_auth_2"); depth++; @@ -462,30 +498,34 @@ void net_io_r_auth_2(char *desc, NET_R_AUTH_2 *r_a, prs_struct *ps, int depth) net_io_neg_flags("", &(r_a->srv_flgs), ps, depth); prs_uint32("status", ps, depth, &(r_a->status)); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void make_q_srv_pwset(NET_Q_SRV_PWSET *q_s, char *logon_srv, char *acct_name, +BOOL make_q_srv_pwset(NET_Q_SRV_PWSET *q_s, char *logon_srv, char *acct_name, uint16 sec_chan, char *comp_name, DOM_CRED *cred, char nt_cypher[16]) { - if (q_s == NULL || cred == NULL) return; + if (q_s == NULL || cred == NULL) return False; DEBUG(5,("make_q_srv_pwset\n")); make_clnt_info(&(q_s->clnt_id), logon_srv, acct_name, sec_chan, comp_name, cred); memcpy(q_s->pwd, nt_cypher, sizeof(q_s->pwd)); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_q_srv_pwset(char *desc, NET_Q_SRV_PWSET *q_s, prs_struct *ps, int depth) +BOOL net_io_q_srv_pwset(char *desc, NET_Q_SRV_PWSET *q_s, prs_struct *ps, int depth) { - if (q_s == NULL) return; + if (q_s == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_srv_pwset"); depth++; @@ -494,14 +534,16 @@ void net_io_q_srv_pwset(char *desc, NET_Q_SRV_PWSET *q_s, prs_struct *ps, int d smb_io_clnt_info("", &(q_s->clnt_id), ps, depth); /* client identification/authentication info */ prs_uint8s (False, "pwd", ps, depth, q_s->pwd, 16); /* new password - undocumented */ + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_srv_pwset(char *desc, NET_R_SRV_PWSET *r_s, prs_struct *ps, int depth) +BOOL net_io_r_srv_pwset(char *desc, NET_R_SRV_PWSET *r_s, prs_struct *ps, int depth) { - if (r_s == NULL) return; + if (r_s == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_srv_pwset"); depth++; @@ -511,6 +553,8 @@ void net_io_r_srv_pwset(char *desc, NET_R_SRV_PWSET *r_s, prs_struct *ps, int d smb_io_cred("", &(r_s->srv_cred), ps, depth); /* server challenge */ prs_uint32("status", ps, depth, &(r_s->status)); + + return True; } @@ -537,12 +581,14 @@ static int make_dom_sid2s(char *sids_str, DOM_SID2 *sids, int max_sids) } return count; + + return True; } /******************************************************************* makes a NET_ID_INFO_1 structure. ********************************************************************/ -void make_id_info1(NET_ID_INFO_1 *id, char *domain_name, +BOOL make_id_info1(NET_ID_INFO_1 *id, char *domain_name, uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high, char *user_name, char *wksta_name, char sess_key[16], @@ -555,7 +601,7 @@ void make_id_info1(NET_ID_INFO_1 *id, char *domain_name, unsigned char lm_owf[16]; unsigned char nt_owf[16]; - if (id == NULL) return; + if (id == NULL) return False; DEBUG(5,("make_id_info1: %d\n", __LINE__)); @@ -607,14 +653,16 @@ void make_id_info1(NET_ID_INFO_1 *id, char *domain_name, make_unistr2(&(id->uni_domain_name), domain_name, len_domain_name); make_unistr2(&(id->uni_user_name ), user_name , len_user_name ); make_unistr2(&(id->uni_wksta_name ), wksta_name , len_wksta_name ); + + return True; } /******************************************************************* reads or writes an NET_ID_INFO_1 structure. ********************************************************************/ -static void net_io_id_info1(char *desc, NET_ID_INFO_1 *id, prs_struct *ps, int depth) +static BOOL net_io_id_info1(char *desc, NET_ID_INFO_1 *id, prs_struct *ps, int depth) { - if (id == NULL) return; + if (id == NULL) return False; prs_debug(ps, depth, desc, "net_io_id_info1"); depth++; @@ -640,6 +688,8 @@ static void net_io_id_info1(char *desc, NET_ID_INFO_1 *id, prs_struct *ps, int smb_io_unistr2("unistr2", &(id->uni_user_name ), id->hdr_user_name.buffer, ps, depth); smb_io_unistr2("unistr2", &(id->uni_wksta_name ), id->hdr_wksta_name.buffer, ps, depth); } + + return True; } /******************************************************************* @@ -657,7 +707,7 @@ checking for a logon as it doesn't export the password hashes to anyone who has compromised the secure channel. JRA. ********************************************************************/ -void make_id_info2(NET_ID_INFO_2 *id, char *domain_name, +BOOL make_id_info2(NET_ID_INFO_2 *id, char *domain_name, uint32 param_ctrl, uint32 log_id_low, uint32 log_id_high, char *user_name, char *wksta_name, unsigned char lm_challenge[8], @@ -672,7 +722,7 @@ void make_id_info2(NET_ID_INFO_2 *id, char *domain_name, unsigned char lm_owf[24]; unsigned char nt_owf[24]; - if (id == NULL) return; + if (id == NULL) return False; DEBUG(5,("make_id_info2: %d\n", __LINE__)); @@ -710,14 +760,16 @@ void make_id_info2(NET_ID_INFO_2 *id, char *domain_name, make_string2(&(id->nt_chal_resp ), (char *)nt_chal_resp , nt_chal_resp_len); make_string2(&(id->lm_chal_resp ), (char *)lm_chal_resp , lm_chal_resp_len); + + return True; } /******************************************************************* reads or writes an NET_ID_INFO_2 structure. ********************************************************************/ -static void net_io_id_info2(char *desc, NET_ID_INFO_2 *id, prs_struct *ps, int depth) +static BOOL net_io_id_info2(char *desc, NET_ID_INFO_2 *id, prs_struct *ps, int depth) { - if (id == NULL) return; + if (id == NULL) return False; prs_debug(ps, depth, desc, "net_io_id_info2"); depth++; @@ -747,18 +799,20 @@ static void net_io_id_info2(char *desc, NET_ID_INFO_2 *id, prs_struct *ps, int smb_io_string2("nt_chal_resp" , &(id->nt_chal_resp) , id->hdr_nt_chal_resp.buffer, ps, depth); smb_io_string2("lm_chal_resp" , &(id->lm_chal_resp) , id->hdr_lm_chal_resp.buffer, ps, depth); } + + return True; } /******************************************************************* makes a DOM_SAM_INFO structure. ********************************************************************/ -void make_sam_info(DOM_SAM_INFO *sam, +BOOL make_sam_info(DOM_SAM_INFO *sam, char *logon_srv, char *comp_name, DOM_CRED *clnt_cred, DOM_CRED *rtn_cred, uint16 logon_level, NET_ID_INFO_CTR *ctr, uint16 validation_level) { - if (sam == NULL) return; + if (sam == NULL) return False; DEBUG(5,("make_sam_info: %d\n", __LINE__)); @@ -777,14 +831,16 @@ void make_sam_info(DOM_SAM_INFO *sam, sam->logon_level = logon_level; sam->ctr = ctr; sam->validation_level = validation_level; + + return True; } /******************************************************************* reads or writes a DOM_SAM_INFO structure. ********************************************************************/ -static void net_io_id_info_ctr(char *desc, NET_ID_INFO_CTR *ctr, prs_struct *ps, int depth) +static BOOL net_io_id_info_ctr(char *desc, NET_ID_INFO_CTR *ctr, prs_struct *ps, int depth) { - if (ctr == NULL) return; + if (ctr == NULL) return False; prs_debug(ps, depth, desc, "smb_io_sam_info"); depth++; @@ -812,14 +868,16 @@ static void net_io_id_info_ctr(char *desc, NET_ID_INFO_CTR *ctr, prs_struct *ps break; } } + + return True; } /******************************************************************* reads or writes a DOM_SAM_INFO structure. ********************************************************************/ -static void smb_io_sam_info(char *desc, DOM_SAM_INFO *sam, prs_struct *ps, int depth) +static BOOL smb_io_sam_info(char *desc, DOM_SAM_INFO *sam, prs_struct *ps, int depth) { - if (sam == NULL) return; + if (sam == NULL) return False; prs_debug(ps, depth, desc, "smb_io_sam_info"); depth++; @@ -839,12 +897,14 @@ static void smb_io_sam_info(char *desc, DOM_SAM_INFO *sam, prs_struct *ps, int } prs_uint16("validation_level", ps, depth, &(sam->validation_level)); + + return True; } /************************************************************************* make_net_user_info3 *************************************************************************/ -void make_net_user_info3(NET_USER_INFO_3 *usr, +BOOL make_net_user_info3(NET_USER_INFO_3 *usr, NTTIME *logon_time, NTTIME *logoff_time, @@ -959,17 +1019,19 @@ void make_net_user_info3(NET_USER_INFO_3 *usr, make_dom_sid2(&(usr->dom_sid), dom_sid); /* "other" sids are set up above */ + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_user_info3(char *desc, NET_USER_INFO_3 *usr, prs_struct *ps, int depth) +static BOOL net_io_user_info3(char *desc, NET_USER_INFO_3 *usr, prs_struct *ps, int depth) { int i; - if (usr == NULL) return; + if (usr == NULL) return False; prs_debug(ps, depth, desc, "lsa_io_lsa_user_info"); depth++; @@ -1041,14 +1103,16 @@ static void net_io_user_info3(char *desc, NET_USER_INFO_3 *usr, prs_struct *ps, smb_io_dom_sid2("", &(usr->other_sids[i]), ps, depth); /* other domain SIDs */ } } + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_q_sam_logon(char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps, int depth) +BOOL net_io_q_sam_logon(char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps, int depth) { - if (q_l == NULL) return; + if (q_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_sam_logon"); depth++; @@ -1056,14 +1120,16 @@ void net_io_q_sam_logon(char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps, int d prs_align(ps); smb_io_sam_info("", &(q_l->sam_id), ps, depth); /* domain SID */ + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int depth) +BOOL net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int depth) { - if (r_l == NULL) return; + if (r_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_sam_logon"); depth++; @@ -1084,14 +1150,16 @@ void net_io_r_sam_logon(char *desc, NET_R_SAM_LOGON *r_l, prs_struct *ps, int d prs_uint32("status ", ps, depth, &(r_l->status)); prs_align(ps); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_q_sam_logoff(char *desc, NET_Q_SAM_LOGOFF *q_l, prs_struct *ps, int depth) +BOOL net_io_q_sam_logoff(char *desc, NET_Q_SAM_LOGOFF *q_l, prs_struct *ps, int depth) { - if (q_l == NULL) return; + if (q_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_sam_logoff"); depth++; @@ -1099,14 +1167,16 @@ void net_io_q_sam_logoff(char *desc, NET_Q_SAM_LOGOFF *q_l, prs_struct *ps, int prs_align(ps); smb_io_sam_info("", &(q_l->sam_id), ps, depth); /* domain SID */ + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_sam_logoff(char *desc, NET_R_SAM_LOGOFF *r_l, prs_struct *ps, int depth) +BOOL net_io_r_sam_logoff(char *desc, NET_R_SAM_LOGOFF *r_l, prs_struct *ps, int depth) { - if (r_l == NULL) return; + if (r_l == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_sam_logoff"); depth++; @@ -1117,15 +1187,17 @@ void net_io_r_sam_logoff(char *desc, NET_R_SAM_LOGOFF *r_l, prs_struct *ps, int smb_io_cred("", &(r_l->srv_creds), ps, depth); /* server credentials. server time stamp appears to be ignored. */ prs_uint32("status ", ps, depth, &(r_l->status)); + + return True; } /******************************************************************* makes a NET_Q_SAM_SYNC structure. ********************************************************************/ -void make_q_sam_sync(NET_Q_SAM_SYNC *q_s, char *srv_name, char *cli_name, +BOOL make_q_sam_sync(NET_Q_SAM_SYNC *q_s, char *srv_name, char *cli_name, DOM_CRED *cli_creds, uint32 database_id) { - if (q_s == NULL) return; + if (q_s == NULL) return False; DEBUG(5,("make_q_sam_sync\n")); @@ -1139,14 +1211,16 @@ void make_q_sam_sync(NET_Q_SAM_SYNC *q_s, char *srv_name, char *cli_name, q_s->restart_state = 0; q_s->sync_context = 0; q_s->max_size = 0xffff; + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_q_sam_sync(char *desc, NET_Q_SAM_SYNC *q_s, prs_struct *ps, int depth) +BOOL net_io_q_sam_sync(char *desc, NET_Q_SAM_SYNC *q_s, prs_struct *ps, int depth) { - if (q_s == NULL) return; + if (q_s == NULL) return False; prs_debug(ps, depth, desc, "net_io_q_sam_sync"); depth++; @@ -1162,14 +1236,16 @@ void net_io_q_sam_sync(char *desc, NET_Q_SAM_SYNC *q_s, prs_struct *ps, int dept prs_uint32("sync_context ", ps, depth, &(q_s->sync_context )); prs_uint32("max_size", ps, depth, &(q_s->max_size)); + + return True; } /******************************************************************* makes a SAM_DELTA_HDR structure. ********************************************************************/ -void make_sam_delta_hdr(SAM_DELTA_HDR *delta, uint16 type, uint32 rid) +BOOL make_sam_delta_hdr(SAM_DELTA_HDR *delta, uint16 type, uint32 rid) { - if (delta == NULL) return; + if (delta == NULL) return False; DEBUG(5,("make_sam_delta_hdr\n")); @@ -1178,14 +1254,16 @@ void make_sam_delta_hdr(SAM_DELTA_HDR *delta, uint16 type, uint32 rid) delta->type3 = type; delta->ptr_delta = 1; + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_delta_hdr(char *desc, SAM_DELTA_HDR *delta, prs_struct *ps, int depth) +static BOOL net_io_sam_delta_hdr(char *desc, SAM_DELTA_HDR *delta, prs_struct *ps, int depth) { - if (delta == NULL) return; + if (delta == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_delta_hdr"); depth++; @@ -1196,14 +1274,16 @@ static void net_io_sam_delta_hdr(char *desc, SAM_DELTA_HDR *delta, prs_struct *p prs_uint32("type3", ps, depth, &(delta->type3 )); prs_uint32("ptr_delta", ps, depth, &(delta->ptr_delta )); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_domain_info(char *desc, SAM_DOMAIN_INFO *info, prs_struct *ps, int depth) +static BOOL net_io_sam_domain_info(char *desc, SAM_DOMAIN_INFO *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_domain_info"); depth++; @@ -1232,14 +1312,16 @@ static void net_io_sam_domain_info(char *desc, SAM_DOMAIN_INFO *info, prs_struct info->hdr_sec_desc.buffer, ps, depth); smb_io_unistr2("buf_unknown" , &(info->buf_unknown ), info->hdr_unknown .buffer, ps, depth); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_group_info(char *desc, SAM_GROUP_INFO *info, prs_struct *ps, int depth) +static BOOL net_io_sam_group_info(char *desc, SAM_GROUP_INFO *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_group_info"); depth++; @@ -1256,12 +1338,14 @@ static void net_io_sam_group_info(char *desc, SAM_GROUP_INFO *info, prs_struct * info->hdr_grp_desc.buffer, ps, depth); smb_io_buffer4("buf_sec_desc", &(info->buf_sec_desc), info->hdr_sec_desc.buffer, ps, depth); + + return True; } /******************************************************************* makes a SAM_ACCOUNT_INFO structure. ********************************************************************/ -void make_sam_account_info(SAM_ACCOUNT_INFO *info, char *user_name, +BOOL make_sam_account_info(SAM_ACCOUNT_INFO *info, char *user_name, char *full_name, uint32 user_rid, uint32 group_rid, char *home_dir, char *dir_drive, char *logon_script, char *acct_desc, uint32 acb_info, char *profile) @@ -1320,15 +1404,17 @@ void make_sam_account_info(SAM_ACCOUNT_INFO *info, char *user_name, make_unistr2(&(info->uni_logon_script), logon_script, len_logon_script+1); make_unistr2(&(info->uni_acct_desc), acct_desc, len_acct_desc+1); make_unistr2(&(info->uni_profile ), profile , len_profile +1); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_passwd_info(char *desc, SAM_PWD *pwd, +static BOOL net_io_sam_passwd_info(char *desc, SAM_PWD *pwd, prs_struct *ps, int depth) { - if (pwd == NULL) return; + if (pwd == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_passwd_info"); depth++; @@ -1343,18 +1429,20 @@ static void net_io_sam_passwd_info(char *desc, SAM_PWD *pwd, smb_io_unihdr("", &(pwd->hdr_empty_lm), ps, depth); smb_io_unihdr("", &(pwd->hdr_empty_nt), ps, depth); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_account_info(char *desc, uint8 sess_key[16], +static BOOL net_io_sam_account_info(char *desc, uint8 sess_key[16], SAM_ACCOUNT_INFO *info, prs_struct *ps, int depth) { BUFHDR2 hdr_priv_data; int i; - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_account_info"); depth++; @@ -1470,17 +1558,19 @@ static void net_io_sam_account_info(char *desc, uint8 sess_key[16], smb_io_unistr2("uni_profile" , &(info->uni_profile ), info->hdr_profile.buffer, ps, depth); prs_align(ps); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_group_mem_info(char *desc, SAM_GROUP_MEM_INFO *info, prs_struct *ps, int depth) +static BOOL net_io_sam_group_mem_info(char *desc, SAM_GROUP_MEM_INFO *info, prs_struct *ps, int depth) { int i; fstring tmp; - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_group_mem_info"); depth++; @@ -1497,7 +1587,7 @@ static void net_io_sam_group_mem_info(char *desc, SAM_GROUP_MEM_INFO *info, prs_ if (info->num_members2 != info->num_members) { /* RPC fault */ - return; + return False; } SMB_ASSERT_ARRAY(info->rids, info->num_members2); @@ -1516,7 +1606,7 @@ static void net_io_sam_group_mem_info(char *desc, SAM_GROUP_MEM_INFO *info, prs_ if (info->num_members3 != info->num_members) { /* RPC fault */ - return; + return False; } SMB_ASSERT_ARRAY(info->attribs, info->num_members3); @@ -1528,14 +1618,16 @@ static void net_io_sam_group_mem_info(char *desc, SAM_GROUP_MEM_INFO *info, prs_ prs_uint32(tmp, ps, depth, &(info->attribs[i])); } } + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_alias_info(char *desc, SAM_ALIAS_INFO *info, prs_struct *ps, int depth) +static BOOL net_io_sam_alias_info(char *desc, SAM_ALIAS_INFO *info, prs_struct *ps, int depth) { - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_alias_info"); depth++; @@ -1552,17 +1644,19 @@ static void net_io_sam_alias_info(char *desc, SAM_ALIAS_INFO *info, prs_struct * info->hdr_sec_desc.buffer, ps, depth); smb_io_unistr2("uni_als_desc", &(info->uni_als_desc), info->hdr_als_name.buffer, ps, depth); + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_alias_mem_info(char *desc, SAM_ALIAS_MEM_INFO *info, prs_struct *ps, int depth) +static BOOL net_io_sam_alias_mem_info(char *desc, SAM_ALIAS_MEM_INFO *info, prs_struct *ps, int depth) { int i; fstring tmp; - if (info == NULL) return; + if (info == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_alias_mem_info"); depth++; @@ -1578,7 +1672,7 @@ static void net_io_sam_alias_mem_info(char *desc, SAM_ALIAS_MEM_INFO *info, prs_ if (info->num_sids != info->num_members) { /* RPC fault */ - return; + return False; } SMB_ASSERT_ARRAY(info->ptr_sids, info->num_sids); @@ -1602,16 +1696,18 @@ static void net_io_sam_alias_mem_info(char *desc, SAM_ALIAS_MEM_INFO *info, prs_ } } } + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -static void net_io_sam_delta_ctr(char *desc, uint8 sess_key[16], +static BOOL net_io_sam_delta_ctr(char *desc, uint8 sess_key[16], SAM_DELTA_CTR *delta, uint16 type, prs_struct *ps, int depth) { - if (delta == NULL) return; + if (delta == NULL) return False; prs_debug(ps, depth, desc, "net_io_sam_delta_ctr"); depth++; @@ -1661,17 +1757,19 @@ static void net_io_sam_delta_ctr(char *desc, uint8 sess_key[16], break; } } + + return True; } /******************************************************************* reads or writes a structure. ********************************************************************/ -void net_io_r_sam_sync(char *desc, uint8 sess_key[16], +BOOL net_io_r_sam_sync(char *desc, uint8 sess_key[16], NET_R_SAM_SYNC *r_s, prs_struct *ps, int depth) { int i; - if (r_s == NULL) return; + if (r_s == NULL) return False; prs_debug(ps, depth, desc, "net_io_r_sam_sync"); depth++; @@ -1690,7 +1788,7 @@ void net_io_r_sam_sync(char *desc, uint8 sess_key[16], if (r_s->num_deltas2 != r_s->num_deltas) { /* RPC fault */ - return; + return False; } for (i = 0; i < r_s->num_deltas2; i++) @@ -1709,4 +1807,6 @@ void net_io_r_sam_sync(char *desc, uint8 sess_key[16], prs_align(ps); prs_uint32("status", ps, depth, &(r_s->status)); + + return True; } |