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-4.0.0alpha6~801^2~680 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1bd72938176fc49c7fedd499e4860da0c78a871b;p=thirdparty%2Fsamba.git In api_pipe_bind_req(), decode the bind request before checking the pipe (This used to be commit 8be41382ed9bb4fb44a1846fff2c7652388e4f28) --- diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 80e2b2f9a92..f8ec4bfc91d 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/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);