diff options
| -rw-r--r-- | source3/rpc_client/cli_pipe.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index d39f742579..ade31dbb5b 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -522,7 +522,7 @@ static BOOL create_rpc_bind_req(prs_struct *rpc_out, BOOL do_auth, uint32 rpc_ca  	prs_struct auth_info;  	int auth_len = 0; -	prs_init(&auth_info, MAX_PDU_FRAG_LEN, 4, MARSHALL); +	prs_init(&auth_info, 0, 4, MARSHALL);  	if (do_auth) {  		RPC_HDR_AUTH hdr_auth; @@ -1087,13 +1087,20 @@ BOOL rpc_pipe_bind(struct cli_state *cli, char *pipe_name, char *my_name)  	prs_struct rdata;  	BOOL do_auth = (cli->ntlmssp_cli_flgs != 0);  	uint32 rpc_call_id; +	char buffer[MAX_PDU_FRAG_LEN];  	DEBUG(5,("Bind RPC Pipe[%x]: %s\n", cli->nt_pipe_fnum, pipe_name));  	if (!valid_pipe_name(pipe_name, &abstract, &transfer))  		return False; -	prs_init(&rpc_out, MAX_PDU_FRAG_LEN, 4, MARSHALL); +	prs_init(&rpc_out, 0, 4, MARSHALL); + +	/* +	 * Use the MAX_PDU_FRAG_LEN buffer to store the bind request. +	 */ + +	prs_give_memory( &rpc_out, buffer, sizeof(buffer), False);  	rpc_call_id = get_rpc_call_id();  | 
