From 3f3f47b0bd8d089120d267cfad1976db95cd8ebe Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Sat, 22 Aug 1998 02:54:21 +0000 Subject: added ASSERT() and ASSERT_ARRAY() macros and sprinkled them liberally in the rpc code. (This used to be commit e6ce1c5b5a9f29d8fcbbd23019186ff5c600e795) --- source3/rpc_server/srv_lsa.c | 8 ++++++++ source3/rpc_server/srv_samr.c | 9 +++++++++ source3/rpc_server/srv_util.c | 3 +++ 3 files changed, 20 insertions(+) (limited to 'source3/rpc_server') diff --git a/source3/rpc_server/srv_lsa.c b/source3/rpc_server/srv_lsa.c index da0c11ea7b..d2ca2d7a76 100644 --- a/source3/rpc_server/srv_lsa.c +++ b/source3/rpc_server/srv_lsa.c @@ -163,6 +163,8 @@ static void make_reply_lookup_rids(LSA_R_LOOKUP_RIDS *r_l, r_l->undoc_buffer = 1; r_l->num_entries2 = num_entries; + ASSERT_ARRAY(r_l->dom_rid, num_entries); + for (i = 0; i < num_entries; i++) { make_dom_rid2(&(r_l->dom_rid[i]), dom_rids[i]); @@ -182,6 +184,8 @@ static void make_lsa_trans_names(LSA_TRANS_NAME_ENUM *trn, int i; (*total) = 0; + ASSERT(num_entries <= MAX_LOOKUP_SIDS); + for (i = 0; i < num_entries; i++) { uint32 rid = 0xffffffff; @@ -192,6 +196,8 @@ static void make_lsa_trans_names(LSA_TRANS_NAME_ENUM *trn, trn->ptr_name[i] = 0; trn->ptr_name[(*total)] = 0; + ASSERT_ARRAY(sid[i].sid.sub_auths, num_auths); + /* find the rid to look up */ if (num_auths != 0) { @@ -397,6 +403,8 @@ static void api_lsa_lookup_names( int uid, prs_struct *data, string_to_sid(&sid_S_1_3, "S-1-3"); string_to_sid(&sid_S_1_5, "S-1-5"); + ASSERT_ARRAY(q_l.lookup_name, q_l.num_entries); + /* convert received RIDs to strings, so we can do them. */ for (i = 0; i < q_l.num_entries; i++) { diff --git a/source3/rpc_server/srv_samr.c b/source3/rpc_server/srv_samr.c index 5ca37f4b83..b0742d0e34 100644 --- a/source3/rpc_server/srv_samr.c +++ b/source3/rpc_server/srv_samr.c @@ -235,6 +235,9 @@ static void samr_reply_unknown_3(SAMR_Q_UNKNOWN_3 *q_u, DOM_SID other_sid; user_sid = global_machine_sid; + + ASSERT_ARRAY(user_sid.sub_auths, user_sid.num_auths+1); + /* * Add the user RID. */ @@ -610,11 +613,14 @@ static void samr_reply_lookup_ids(SAMR_Q_LOOKUP_IDS *q_u, #if 0 int i; + ASSERT_ARRAY(q_u->uni_user_name, num_rids); + for (i = 0; i < num_rids && status == 0; i++) { struct smb_passwd *smb_pass; fstring user_name; + fstrcpy(user_name, unistrn2(q_u->uni_user_name[i].buffer, q_u->uni_user_name[i].uni_str_len)); @@ -683,6 +689,8 @@ static void samr_reply_lookup_names(SAMR_Q_LOOKUP_NAMES *q_u, DEBUG(5,("samr_lookup_names: truncating entries to %d\n", num_rids)); } + ASSERT_ARRAY(q_u->uni_user_name, num_rids); + for (i = 0; i < num_rids && status == 0; i++) { fstring name; @@ -890,6 +898,7 @@ static BOOL get_user_info_21(SAM_USER_INFO_21 *id21, uint32 user_rid) /* create a LOGON_HRS structure */ hrs.len = sam_pass->hours_len; + ASSERT_ARRAY(hrs.hours, hrs.len); for (i = 0; i < hrs.len; i++) { hrs.hours[i] = sam_pass->hours[i]; diff --git a/source3/rpc_server/srv_util.c b/source3/rpc_server/srv_util.c index c316661146..80e10a3d3a 100644 --- a/source3/rpc_server/srv_util.c +++ b/source3/rpc_server/srv_util.c @@ -94,6 +94,7 @@ BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid) rnp = &builtin_alias_rids[i]; if(strequal(rnp->name, windows_name)) { string_to_sid( psid, "S-1-5-32" ); + ASSERT_ARRAY(psid->sub_auths, psid->num_auths+1); psid->sub_auths[psid->num_auths++] = rnp->rid; return True; } @@ -103,6 +104,7 @@ BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid) rnp = &domain_user_rids[i]; if(strequal(rnp->name, windows_name)) { *psid = global_machine_sid; + ASSERT_ARRAY(psid->sub_auths, psid->num_auths+1); psid->sub_auths[psid->num_auths++] = rnp->rid; return True; } @@ -112,6 +114,7 @@ BOOL lookup_wellknown_sid_from_name(char *windows_name, DOM_SID *psid) rnp = &domain_group_rids[i]; if(strequal(rnp->name, windows_name)) { *psid = global_machine_sid; + ASSERT_ARRAY(psid->sub_auths, psid->num_auths+1); psid->sub_auths[psid->num_auths++] = rnp->rid; return True; } -- cgit