From 5629eb78028cfcd9fc183d5e4950878e135ed2c8 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 27 Apr 2012 16:18:47 +0200 Subject: s4:librpc: create a binding on the pipe if necessary in dcerpc_pipe_open_smb2_send() Pair-Programmed-With: Michael Adam --- source4/librpc/rpc/dcerpc_smb2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'source4/librpc') diff --git a/source4/librpc/rpc/dcerpc_smb2.c b/source4/librpc/rpc/dcerpc_smb2.c index b822c44fda..30f94a45c4 100644 --- a/source4/librpc/rpc/dcerpc_smb2.c +++ b/source4/librpc/rpc/dcerpc_smb2.c @@ -415,6 +415,21 @@ struct composite_context *dcerpc_pipe_open_smb2_send(struct dcerpc_pipe *p, struct smb2_request *req; struct dcecli_connection *c = p->conn; + /* if we don't have a binding on this pipe yet, then create one */ + if (p->binding == NULL) { + NTSTATUS status; + const char *r = smbXcli_conn_remote_name(tree->session->transport->conn); + char *s; + SMB_ASSERT(r != NULL); + s = talloc_asprintf(p, "ncacn_np:%s", r); + if (s == NULL) return NULL; + status = dcerpc_parse_binding(p, s, &p->binding); + talloc_free(s); + if (!NT_STATUS_IS_OK(status)) { + return NULL; + } + } + ctx = composite_create(c, c->event_ctx); if (ctx == NULL) return NULL; -- cgit