diff options
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r-- | source3/rpc_parse/parse_lsa.c | 4 | ||||
-rw-r--r-- | source3/rpc_parse/parse_misc.c | 61 | ||||
-rw-r--r-- | source3/rpc_parse/parse_net.c | 6 | ||||
-rw-r--r-- | source3/rpc_parse/parse_samr.c | 6 |
4 files changed, 12 insertions, 65 deletions
diff --git a/source3/rpc_parse/parse_lsa.c b/source3/rpc_parse/parse_lsa.c index 202c3b6da3..6bd916ed32 100644 --- a/source3/rpc_parse/parse_lsa.c +++ b/source3/rpc_parse/parse_lsa.c @@ -247,8 +247,8 @@ void lsa_io_q_enum_trust_dom(char *desc, LSA_Q_ENUM_TRUST_DOM *q_e, prs_struct makes an LSA_R_ENUM_TRUST_DOM structure. ********************************************************************/ void make_r_enum_trust_dom(LSA_R_ENUM_TRUST_DOM *r_e, - uint32 enum_context, char *domain_name, char *domain_sid, - uint32 status) + uint32 enum_context, char *domain_name, DOM_SID *domain_sid, + uint32 status) { if (r_e == NULL) return; diff --git a/source3/rpc_parse/parse_misc.c b/source3/rpc_parse/parse_misc.c index b46bcd9f89..35ca6c9553 100644 --- a/source3/rpc_parse/parse_misc.c +++ b/source3/rpc_parse/parse_misc.c @@ -116,61 +116,6 @@ void smb_io_enum_hnd(char *desc, ENUM_HND *hnd, prs_struct *ps, int depth) } /******************************************************************* -creates a DOM_SID structure. - -BIG NOTE: this function only does SIDS where the identauth is not >= 2^32 -identauth >= 2^32 can be detected because it will be specified in hex - -********************************************************************/ -void make_dom_sid(DOM_SID *sid, char *str_sid) -{ - pstring domsid; - int identauth; - char *p; - - if (sid == NULL) return; - - if (domsid == NULL) - { - DEBUG(4,("netlogon domain SID: none\n")); - sid->sid_rev_num = 0; - sid->num_auths = 0; - return; - } - - pstrcpy(domsid, str_sid); - - DEBUG(4,("make_dom_sid %d SID: %s\n", __LINE__, domsid)); - - /* assume, but should check, that domsid starts "S-" */ - p = strtok(domsid+2,"-"); - sid->sid_rev_num = atoi(p); - - /* identauth in decimal should be < 2^32 */ - /* identauth in hex should be >= 2^32 */ - identauth = atoi(strtok(0,"-")); - - DEBUG(4,("netlogon rev %d\n", sid->sid_rev_num)); - DEBUG(4,("netlogon %s ia %d\n", p, identauth)); - - sid->id_auth[0] = 0; - sid->id_auth[1] = 0; - sid->id_auth[2] = (identauth & 0xff000000) >> 24; - sid->id_auth[3] = (identauth & 0x00ff0000) >> 16; - sid->id_auth[4] = (identauth & 0x0000ff00) >> 8; - sid->id_auth[5] = (identauth & 0x000000ff); - - sid->num_auths = 0; - - while ((p = strtok(0, "-")) != NULL && sid->num_auths < MAXSUBAUTHS) - { - sid->sub_auths[sid->num_auths++] = atoi(p); - } - - DEBUG(4,("make_dom_sid: %d SID: %s\n", __LINE__, domsid)); -} - -/******************************************************************* reads or writes a DOM_SID structure. ********************************************************************/ void smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth) @@ -203,10 +148,10 @@ void smb_io_dom_sid(char *desc, DOM_SID *sid, prs_struct *ps, int depth) /******************************************************************* creates a DOM_SID2 structure. ********************************************************************/ -void make_dom_sid2(DOM_SID2 *sid, char *str_sid) +void make_dom_sid2(DOM_SID2 *sid2, DOM_SID *sid) { - make_dom_sid(&(sid->sid), str_sid); - sid->num_auths = sid->sid.num_auths; + sid2->sid = *sid; + sid2->num_auths = sid2->sid.num_auths; } /******************************************************************* diff --git a/source3/rpc_parse/parse_net.c b/source3/rpc_parse/parse_net.c index c74ace8d63..fd9f7255de 100644 --- a/source3/rpc_parse/parse_net.c +++ b/source3/rpc_parse/parse_net.c @@ -560,7 +560,9 @@ static int make_dom_sid2s(char *sids_str, DOM_SID2 *sids, int max_sids) for (count = 0, ptr = sids_str; next_token(&ptr, s2, NULL) && count < max_sids; count++) { - make_dom_sid2(&sids[count], s2); + DOM_SID tmpsid; + string_to_sid(&tmpsid, s2); + make_dom_sid2(&sids[count], &tmpsid); } return count; @@ -908,7 +910,7 @@ void make_net_user_info3(NET_USER_INFO_3 *usr, char *logon_srv, char *logon_dom, - char *dom_sid, + DOM_SID *dom_sid, char *other_sids) { /* only cope with one "other" sid, right now. */ diff --git a/source3/rpc_parse/parse_samr.c b/source3/rpc_parse/parse_samr.c index 44248bfc64..09c47ab25a 100644 --- a/source3/rpc_parse/parse_samr.c +++ b/source3/rpc_parse/parse_samr.c @@ -78,7 +78,7 @@ void samr_io_r_close_hnd(char *desc, SAMR_R_CLOSE_HND *r_u, prs_struct *ps, int reads or writes a structure. ********************************************************************/ void make_samr_q_open_domain(SAMR_Q_OPEN_DOMAIN *q_u, - POLICY_HND *connect_pol, uint32 rid, char *sid) + POLICY_HND *connect_pol, uint32 rid, DOM_SID *sid) { if (q_u == NULL) return; @@ -204,11 +204,11 @@ void samr_io_q_unknown_3(char *desc, SAMR_Q_UNKNOWN_3 *q_u, prs_struct *ps, int calculate length by adding up the size of the components. ********************************************************************/ -void make_dom_sid3(DOM_SID3 *sid3, uint16 unk_0, uint16 unk_1, char *sid) +void make_dom_sid3(DOM_SID3 *sid3, uint16 unk_0, uint16 unk_1, char *sidstr) { if (sid3 == NULL) return; - make_dom_sid(&(sid3->sid), sid); + string_to_sid(&(sid3->sid), sidstr); sid3->len = 2 + 8 + sid3->sid.num_auths * 4; } |