X-Git-Url: http://git.samba.org/?p=samba.git;a=blobdiff_plain;f=source%2Fntvfs%2Fposix%2Fpvfs_open.c;h=271bd414295174146527e823e8923d701d9db5f7;hp=560d194a3462007a947acc701001b4c9b92e53af;hb=4a8b0302eff37ccfcb66b91259ee5da20879c652;hpb=9560a6c8cc650c3a519b14c79f497e6bd9ef387e;ds=sidebyside diff --git a/source/ntvfs/posix/pvfs_open.c b/source/ntvfs/posix/pvfs_open.c index 560d194a346..271bd414295 100644 --- a/source/ntvfs/posix/pvfs_open.c +++ b/source/ntvfs/posix/pvfs_open.c @@ -110,7 +110,12 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs, #define O_DIRECTORY 0 #endif - if (io->generic.in.create_options & NTCREATEX_OPTIONS_DIRECTORY) { + if ((io->generic.in.create_options & NTCREATEX_OPTIONS_DIRECTORY) && + !(name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY)) { + return NT_STATUS_NOT_A_DIRECTORY; + } + + if (name->dos.attrib & FILE_ATTRIBUTE_DIRECTORY) { flags = O_RDONLY | O_DIRECTORY; if (pvfs->flags & PVFS_FLAG_READONLY) { goto do_open;