s4:ntvfs/ipc: fix protocol specific processing of pipe names
authorStefan Metzmacher <metze@samba.org>
Mon, 28 May 2012 17:44:04 +0000 (19:44 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 28 May 2012 19:48:47 +0000 (21:48 +0200)
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Mon May 28 21:48:47 CEST 2012 on sn-devel-104

source4/ntvfs/ipc/vfs_ipc.c

index 5905e0cbafac9e8a7477f0f3af1fc1c6a7efe5d6..7fc3b1488415695cee1357981af42719a284aae3 100644 (file)
@@ -260,9 +260,15 @@ static NTSTATUS ipc_open(struct ntvfs_module_context *ntvfs,
        case RAW_OPEN_NTCREATEX:
        case RAW_OPEN_NTTRANS_CREATE:
                fname = oi->ntcreatex.in.fname;
+               while (fname[0] == '\\') fname++;
                break;
        case RAW_OPEN_OPENX:
                fname = oi->openx.in.fname;
+               while (fname[0] == '\\') fname++;
+               if (strncasecmp(fname, "PIPE\\", 5) != 0) {
+                       return NT_STATUS_OBJECT_PATH_SYNTAX_BAD;
+               }
+               while (fname[0] == '\\') fname++;
                break;
        case RAW_OPEN_SMB2:
                fname = oi->smb2.in.fname;
@@ -284,8 +290,6 @@ static NTSTATUS ipc_open(struct ntvfs_module_context *ntvfs,
        p = talloc(h, struct pipe_state);
        NT_STATUS_HAVE_NO_MEMORY(p);
 
-       while (fname[0] == '\\') fname++;
-
        /* check for valid characters in name */
        fname = strlower_talloc(p, fname);