summaryrefslogtreecommitdiff
path: root/source3/rpc_parse
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2006-02-09 00:23:40 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 11:09:59 -0500
commitcf7c47aac990f67e1829a7e4b9d3550b7e93739b (patch)
tree0246e8d6e9ae210adfb67bfc2e06f45e2b4920e3 /source3/rpc_parse
parent86358fc10bb02bd3069736bedb120f52fa3f6494 (diff)
downloadsamba-cf7c47aac990f67e1829a7e4b9d3550b7e93739b.tar.gz
samba-cf7c47aac990f67e1829a7e4b9d3550b7e93739b.tar.bz2
samba-cf7c47aac990f67e1829a7e4b9d3550b7e93739b.zip
r13399: Get closer to passing RPC-SCHANNEL test.
Jeremy. (This used to be commit 8ae70122b79fbe682c227ec2c4e5a72bf58d76de)
Diffstat (limited to 'source3/rpc_parse')
-rw-r--r--source3/rpc_parse/parse_net.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/source3/rpc_parse/parse_net.c b/source3/rpc_parse/parse_net.c
index e7b1cdc767..fd2bc3cf38 100644
--- a/source3/rpc_parse/parse_net.c
+++ b/source3/rpc_parse/parse_net.c
@@ -1295,7 +1295,7 @@ static BOOL net_io_id_info_ctr(const char *desc, NET_ID_INFO_CTR **pp_ctr, prs_s
{
NET_ID_INFO_CTR *ctr = *pp_ctr;
- prs_debug(ps, depth, desc, "smb_io_sam_info");
+ prs_debug(ps, depth, desc, "smb_io_sam_info_ctr");
depth++;
if (UNMARSHALLING(ps)) {
@@ -1323,7 +1323,7 @@ static BOOL net_io_id_info_ctr(const char *desc, NET_ID_INFO_CTR **pp_ctr, prs_s
break;
default:
/* PANIC! */
- DEBUG(4,("smb_io_sam_info: unknown switch_value!\n"));
+ DEBUG(4,("smb_io_sam_info_ctr: unknown switch_value!\n"));
break;
}
@@ -1350,8 +1350,10 @@ static BOOL smb_io_sam_info(const char *desc, DOM_SAM_INFO *sam, prs_struct *ps,
if(!prs_uint32("ptr_rtn_cred ", ps, depth, &sam->ptr_rtn_cred))
return False;
- if(!smb_io_cred("", &sam->rtn_cred, ps, depth))
- return False;
+ if (sam->ptr_rtn_cred) {
+ if(!smb_io_cred("", &sam->rtn_cred, ps, depth))
+ return False;
+ }
if(!prs_uint16("logon_level ", ps, depth, &sam->logon_level))
return False;
@@ -1700,7 +1702,7 @@ BOOL net_io_user_info3(const char *desc, NET_USER_INFO_3 *usr, prs_struct *ps,
if(!smb_io_dom_sid2("", &usr->dom_sid, ps, depth)) /* domain SID */
return False;
- if (usr->buffer_other_sids) {
+ if (validation_level == 3 && usr->buffer_other_sids) {
uint32 num_other_sids = usr->num_other_sids;
@@ -1776,7 +1778,7 @@ BOOL net_io_q_sam_logon(const char *desc, NET_Q_SAM_LOGON *q_l, prs_struct *ps,
if(!prs_align_uint16(ps))
return False;
-
+
if(!prs_uint16("validation_level", ps, depth, &q_l->validation_level))
return False;