summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-10-18 16:25:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:01:53 -0500
commit06fe5d6cd92bbf87f80c3df305d136760d0f91d8 (patch)
tree6b1ab57f724b79090e04b0661d02eb0a96e78bcd
parent2c081d2c47452acff3115637bbd16f780e23b76a (diff)
downloadsamba-06fe5d6cd92bbf87f80c3df305d136760d0f91d8.tar.gz
samba-06fe5d6cd92bbf87f80c3df305d136760d0f91d8.tar.bz2
samba-06fe5d6cd92bbf87f80c3df305d136760d0f91d8.zip
r3047: Always include a \ again before the pipe name we're opening. Without a
backslash works, but is not like Windows does it. (This used to be commit f6deb3d065e1a88f92bcb8a4a138453650c97b0b)
-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;