summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorVolker Lendecke <vl@sernet.de>2008-12-12 13:47:41 +0100
committerKarolin Seeger <kseeger@samba.org>2008-12-12 17:56:41 +0100
commit9391dad85d08bb0939f4db1472c6cf063ebea892 (patch)
tree8a937765cfbf2d5f1b021e26a92917e3a3a5ae98 /source3/smbd
parent01a444b42255a98e892f4cbb29b88796285c6d36 (diff)
downloadsamba-9391dad85d08bb0939f4db1472c6cf063ebea892.tar.gz
samba-9391dad85d08bb0939f4db1472c6cf063ebea892.tar.bz2
samba-9391dad85d08bb0939f4db1472c6cf063ebea892.zip
Fix error code when smbclient puts a file over an existing directory
Windows returns NT_STATUS_FILE_IS_A_DIRECTORY, as does Samba 3.0. 3.2 and following returned NT_STATUS_INVALID_PARAMETER which is wrong. Before I converted reply_open_and_X to create_file() we called open_file_ntcreate directly. Passing through open&X for a filename that exists as a directory ends up in open_directory after having tried open_file_ntcreate. Some check in there returns NT_STATUS_INVALID_PARAMETER. With this additional FILE_NON_DIRECTORY_FILE flag we get the correct error message back from create_file_unixpath before trying open_directory(). Survives make test, but as this also touches the other open variants I would like others to review this. Volker
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/open.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 77ad1664ef..1e988f65ec 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -1048,7 +1048,7 @@ bool map_open_params_to_ntcreate(const char *fname, int deny_mode, int open_func
uint32 access_mask;
uint32 share_mode;
uint32 create_disposition;
- uint32 create_options = 0;
+ uint32 create_options = FILE_NON_DIRECTORY_FILE;
DEBUG(10,("map_open_params_to_ntcreate: fname = %s, deny_mode = 0x%x, "
"open_func = 0x%x\n",