From: Volker Lendecke Date: Wed, 16 Jul 2008 20:08:59 +0000 (+0200) Subject: In api_pipe_bind_req(), decode the bind request before checking the pipe X-Git-Tag: samba-3.3.0pre1~543 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8be41382ed9bb4fb44a1846fff2c7652388e4f28;p=thirdparty%2Fsamba.git In api_pipe_bind_req(), decode the bind request before checking the pipe --- diff --git a/source/rpc_server/srv_pipe.c b/source/rpc_server/srv_pipe.c index 80e2b2f9a92..f8ec4bfc91d 100644 --- a/source/rpc_server/srv_pipe.c +++ b/source/rpc_server/srv_pipe.c @@ -1565,6 +1565,16 @@ bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p) DEBUG(5,("api_pipe_bind_req: decode request. %d\n", __LINE__)); + ZERO_STRUCT(hdr_rb); + + /* decode the bind request */ + + if(!smb_io_rpc_hdr_rb("", &hdr_rb, rpc_in_p, 0)) { + DEBUG(0,("api_pipe_bind_req: unable to unmarshall RPC_HDR_RB " + "struct.\n")); + goto err_exit; + } + /* * Try and find the correct pipe name to ensure * that this is a pipe name we support. @@ -1606,14 +1616,6 @@ bool api_pipe_bind_req(pipes_struct *p, prs_struct *rpc_in_p) } } - ZERO_STRUCT(hdr_rb); - - /* decode the bind request */ - if(!smb_io_rpc_hdr_rb("", &hdr_rb, rpc_in_p, 0)) { - DEBUG(0,("api_pipe_bind_req: unable to unmarshall RPC_HDR_RB struct.\n")); - goto err_exit; - } - /* name has to be \PIPE\xxxxx */ fstrcpy(ack_pipe_name, "\\PIPE\\"); fstrcat(ack_pipe_name, p->pipe_srv_name);