diff options
-rw-r--r-- | source4/librpc/rpc/dcerpc_util.c | 4 | ||||
-rw-r--r-- | source4/ntvfs/ipc/vfs_ipc.c | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/source4/librpc/rpc/dcerpc_util.c b/source4/librpc/rpc/dcerpc_util.c index 87a9073a73..ccb7f126ea 100644 --- a/source4/librpc/rpc/dcerpc_util.c +++ b/source4/librpc/rpc/dcerpc_util.c @@ -456,6 +456,10 @@ static NTSTATUS dcerpc_pipe_connect_ncacn_np(struct dcerpc_pipe **p, !strncasecmp(pipe_name, "\\pipe\\", 6)) { pipe_name+=6; } + + if (pipe_name[0] != '\\') { + pipe_name = talloc_asprintf(mem_ctx, "\\%s", pipe_name); + } if (!username || !username[0]) { status = smbcli_full_connection(NULL, &cli, lp_netbios_name(), diff --git a/source4/ntvfs/ipc/vfs_ipc.c b/source4/ntvfs/ipc/vfs_ipc.c index 238467a746..760cf07100 100644 --- a/source4/ntvfs/ipc/vfs_ipc.c +++ b/source4/ntvfs/ipc/vfs_ipc.c @@ -215,6 +215,8 @@ static NTSTATUS ipc_open_generic(struct ntvfs_module_context *ntvfs, return NT_STATUS_NO_MEMORY; } + while (fname[0] == '\\') fname++; + p->pipe_name = talloc_asprintf(p, "\\pipe\\%s", fname); if (!p->pipe_name) { talloc_free(p); @@ -240,6 +242,7 @@ static NTSTATUS ipc_open_generic(struct ntvfs_module_context *ntvfs, finalised for Samba4 */ + printf("FINDING: %s\n", p->pipe_name); ep_description.type = ENDPOINT_SMB; ep_description.info.smb_pipe = p->pipe_name; @@ -303,10 +306,6 @@ static NTSTATUS ipc_open_openx(struct ntvfs_module_context *ntvfs, NTSTATUS status; const char *fname = oi->openx.in.fname; - if (strncasecmp(fname, "PIPE\\", 5) != 0) { - return NT_STATUS_OBJECT_NAME_NOT_FOUND; - } - status = ipc_open_generic(ntvfs, req, fname, &p); if (!NT_STATUS_IS_OK(status)) { return status; |