summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/librpc/rpc/dcerpc_util.c4
-rw-r--r--source4/ntvfs/ipc/vfs_ipc.c7
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;