summaryrefslogtreecommitdiff
path: root/source3/ntclientpipe.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/ntclientpipe.c')
-rw-r--r--source3/ntclientpipe.c25
1 files changed, 22 insertions, 3 deletions
diff --git a/source3/ntclientpipe.c b/source3/ntclientpipe.c
index 79b1e1cd9c..6a4fa59f80 100644
--- a/source3/ntclientpipe.c
+++ b/source3/ntclientpipe.c
@@ -182,15 +182,34 @@ BOOL bind_rpc_pipe(char *pipe_name, uint16 fnum, uint32 call_id,
if (p)
{
/* check the transfer syntax */
- valid_ack = hdr_ba.transfer.version == transfer->version &&
- memcmp(hdr_ba.transfer.data, transfer->data,
- sizeof(transfer->version));
+ valid_ack = (hdr_ba.transfer.version == transfer->version) &&
+ (memcmp(hdr_ba.transfer.data, transfer->data,
+ sizeof(transfer->version)) ==0);
if (!valid_ack)
{
DEBUG(2,("bind_rpc_pipe: transfer syntax differs\n"));
p = NULL;
}
}
+
+ if (p)
+ {
+ /* check the results */
+ valid_ack = (hdr_ba.res.num_results == 0x1) &&
+ (hdr_ba.res.result == 0);
+
+ if (!valid_ack)
+ {
+ DEBUG(2,("bind_rpc_pipe: bind denied results: %d reason: %x\n",
+ hdr_ba.res.num_results,
+ hdr_ba.res.reason));
+ p = NULL;
+ }
+ else
+ {
+ DEBUG(5,("bind_rpc_pipe: accepted!\n"));
+ }
+ }
}
if (rparam) free(rparam);