From 0db5b8fdc97d24bdfadefb9b043df614644c578a Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Wed, 29 Oct 1997 14:34:17 +0000 Subject: ipc.c : bind ack should contain \PIPE\pipename not just pipename. ntclientpipe.c : sanity in bind ack: pipe name checks; transfer syntax checks; reason checks. (This used to be commit c2e2197e9d87795bda0198247c7bb132fe586fc1) --- source3/ntclientpipe.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'source3/ntclientpipe.c') 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); -- cgit