diff options
author | Volker Lendecke <vl@sernet.de> | 2008-12-12 13:47:41 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2008-12-12 17:56:41 +0100 |
commit | 9391dad85d08bb0939f4db1472c6cf063ebea892 (patch) | |
tree | 8a937765cfbf2d5f1b021e26a92917e3a3a5ae98 | |
parent | 01a444b42255a98e892f4cbb29b88796285c6d36 (diff) | |
download | samba-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
-rw-r--r-- | source3/smbd/open.c | 2 |
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", |