summaryrefslogtreecommitdiff
path: root/source3/rpc_server/srv_pipe.c
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2011-05-25 17:26:01 +0200
committerAndreas Schneider <asn@samba.org>2011-06-01 12:02:15 +0200
commit438b24a77f5173d9ffee76009589033ece6e9dce (patch)
treec46d897575cb8873d71235fb053ccd0642b7dbe3 /source3/rpc_server/srv_pipe.c
parent7d800a8694e7c9bef96ae006ace5807872f375d4 (diff)
downloadsamba-438b24a77f5173d9ffee76009589033ece6e9dce.tar.gz
samba-438b24a77f5173d9ffee76009589033ece6e9dce.tar.bz2
samba-438b24a77f5173d9ffee76009589033ece6e9dce.zip
s3-rpc_server: Remove guessing of the syntax id.
This is only a wild guess. We don't know to which rpc service the client wants to talk until we read the the rpc bind packet.
Diffstat (limited to 'source3/rpc_server/srv_pipe.c')
-rw-r--r--source3/rpc_server/srv_pipe.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c
index 6e48fedd2b..878f5d0792 100644
--- a/source3/rpc_server/srv_pipe.c
+++ b/source3/rpc_server/srv_pipe.c
@@ -335,6 +335,7 @@ static bool check_bind_req(struct pipes_struct *p,
uint32_t context_id)
{
struct pipe_rpc_fns *context_fns;
+ bool ok;
DEBUG(3,("check_bind_req for %s\n",
get_pipe_name_from_syntax(talloc_tos(), abstract)));
@@ -349,6 +350,12 @@ static bool check_bind_req(struct pipes_struct *p,
return false;
}
+ ok = init_pipe_handles(p, abstract);
+ if (!ok) {
+ DEBUG(1, ("Failed to init pipe handles!\n"));
+ return false;
+ }
+
context_fns = SMB_MALLOC_P(struct pipe_rpc_fns);
if (context_fns == NULL) {
DEBUG(0,("check_bind_req: malloc() failed!\n"));