not include the null-termination character.
********************************************************************/
-BOOL prs_string(const char *name, prs_struct *ps, int depth, char *str, int len, int max_buf_size)
+BOOL prs_string(const char *name, prs_struct *ps, int depth, char *str, int max_buf_size)
{
char *q;
int i;
+ int len;
+
+ if (UNMARSHALLING(ps))
+ len = strlen(&ps->data_p[ps->data_offset]);
+ else
+ len = strlen(str);
len = MIN(len, (max_buf_size-1));
depth++;
/* "NTLMSSP" */
- if(!prs_string("signature", ps, depth, rav->signature, strlen("NTLMSSP"),
+ if(!prs_string("signature", ps, depth, rav->signature,
sizeof(rav->signature)))
return False;
if(!prs_uint32("msg_type ", ps, depth, &rav->msg_type)) /* NTLMSSP_MESSAGE_TYPE */
}
/*******************************************************************
- This parses an RPC_AUTH_VERIFIER for NETLOGON schannel. I thing
+ This parses an RPC_AUTH_VERIFIER for NETLOGON schannel. I think
assuming "NTLMSSP" in sm_io_rpc_auth_verifier is somewhat wrong.
I have to look at that later...
********************************************************************/
prs_debug(ps, depth, desc, "smb_io_rpc_auth_verifier");
depth++;
- /* "NTLMSSP" */
- if(!prs_string("signature", ps, depth, rav->signature, strlen(rav->signature),
- sizeof(rav->signature)))
+ if(!prs_string("signature", ps, depth, rav->signature, sizeof(rav->signature)))
return False;
- if(!prs_uint32("msg_type ", ps, depth, &rav->msg_type)) /* NTLMSSP_MESSAGE_TYPE */
+ if(!prs_uint32("msg_type ", ps, depth, &rav->msg_type))
return False;
return True;
return False;
if(!prs_uint32("type2", ps, depth, &neg->type2))
return False;
- if(!prs_string("domain ", ps, depth, neg->domain,
- strlen(neg->domain), sizeof(neg->domain)))
+ if(!prs_string("domain ", ps, depth, neg->domain, sizeof(neg->domain)))
return False;
- if(!prs_string("myname ", ps, depth, neg->myname,
- strlen(neg->myname), sizeof(neg->myname)))
+ if(!prs_string("myname ", ps, depth, neg->myname, sizeof(neg->myname)))
return False;
return True;