diff options
author | Jeremy Allison <jra@samba.org> | 2014-05-08 21:31:49 -0700 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2014-05-09 23:10:07 +0200 |
commit | b2ce2441a35ed68c39791168217d159352b5143c (patch) | |
tree | 173c6790a854d2cee5d190f90231c7386998ebbd /source3/lib/serverid.c | |
parent | 3d8ba9b34e34c1f3e0c1c231d6b772994b45eeaf (diff) | |
download | samba-b2ce2441a35ed68c39791168217d159352b5143c.tar.gz samba-b2ce2441a35ed68c39791168217d159352b5143c.tar.xz samba-b2ce2441a35ed68c39791168217d159352b5143c.zip |
s3: libsmbclient: Work around bugs in SLES cifsd and Apple smbx SMB1 servers.
SLES's cifsd and Apple's smbx do not correctly handle FILE_NON_DIRECTORY_FILE
which prevents recursive copies in gvfs from working correctly [1] since GVFS
tries to open the directory, expecting ENOTDIR, but it suceeds and appears as a
zero byte file.
This fix adds code to the cli_open() open code that checks if
CreateOptions was requested with FILE_NON_DIRECTORY_FILE set,
and if the attributes returned include FILE_ATTRIBUTE_DIRECTORY
we synchronously close the file handle just opened, and return
NT_STATUS_FILE_IS_A_DIRECTORY to the caller.
Depends on the previous API update to cli_ntcreate()
to add returned attributes.
Fixes bug #10587 - Opening directories on SLES's cifsd and Apple's smbx succeeds.
https://bugzilla.samba.org/show_bug.cgi?id=10587
Signed-off-by: Jeremy Allison <jra@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3/lib/serverid.c')
0 files changed, 0 insertions, 0 deletions