summaryrefslogtreecommitdiff
path: root/source3/rpc_server
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1998-08-22 02:54:21 +0000
committerAndrew Tridgell <tridge@samba.org>1998-08-22 02:54:21 +0000
commit3f3f47b0bd8d089120d267cfad1976db95cd8ebe (patch)
tree145ed3a2c31999fa352c123b3a366a96ce4dde62 /source3/rpc_server
parentbce4d95ca9f0f1b175f5eff682c961754d494253 (diff)
downloadsamba-3f3f47b0bd8d089120d267cfad1976db95cd8ebe.tar.gz
samba-3f3f47b0bd8d089120d267cfad1976db95cd8ebe.tar.bz2
samba-3f3f47b0bd8d089120d267cfad1976db95cd8ebe.zip
added ASSERT() and ASSERT_ARRAY() macros and sprinkled them liberally
in the rpc code. (This used to be commit e6ce1c5b5a9f29d8fcbbd23019186ff5c600e795)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r--source3/rpc_server/srv_lsa.c8
-rw-r--r--source3/rpc_server/srv_samr.c9
-rw-r--r--source3/rpc_server/srv_util.c3
3 files changed, 20 insertions, 0 deletions
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;
}