[SCM] Samba Shared Repository - branch master updated -
release-4-0-0alpha7-992-g7f10bf9
Jeremy Allison
jra at samba.org
Fri Apr 10 05:46:49 GMT 2009
The branch, master has been updated
via 7f10bf980edef3ace1522d0c9c082b35e225c950 (commit)
via f8f68703da58cf7f61b655b48bbbc45cda647748 (commit)
from f930f504e1d5e78d2f6f36cab9ce36dbeb34e955 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7f10bf980edef3ace1522d0c9c082b35e225c950
Merge: f8f68703da58cf7f61b655b48bbbc45cda647748 f930f504e1d5e78d2f6f36cab9ce36dbeb34e955
Author: Jeremy Allison <jra at samba.org>
Date: Thu Apr 9 22:46:59 2009 -0700
Merge branch 'master' of ssh://jra@git.samba.org/data/git/samba
commit f8f68703da58cf7f61b655b48bbbc45cda647748
Author: Jeremy Allison <jra at samba.org>
Date: Thu Apr 9 22:44:56 2009 -0700
Fix bug #6254 - PUT/GET produces an error in IPv6 to a smb-server(3.3) has parameter "msdfs root = yes"
This was broken by the refactoring around create_file().
MSDFS pathname processing must be done FIRST.
MSDFS pathnames containing IPv6 addresses can
be confused with NTFS stream names (they contain
":" characters.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source3/smbd/open.c | 41 +++++++++++++++++++++++------------------
1 files changed, 23 insertions(+), 18 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/smbd/open.c b/source3/smbd/open.c
index 52df4fa..4514617 100644
--- a/source3/smbd/open.c
+++ b/source3/smbd/open.c
@@ -3355,6 +3355,29 @@ NTSTATUS create_file_default(connection_struct *conn,
(unsigned int)root_dir_fid,
ea_list, sd, create_file_flags, fname));
+ /* MSDFS pathname processing must be done FIRST.
+ MSDFS pathnames containing IPv6 addresses can
+ be confused with NTFS stream names (they contain
+ ":" characters. JRA. */
+
+ if ((req != NULL) && (req->flags2 & FLAGS2_DFS_PATHNAMES)) {
+ char *resolved_fname;
+
+ status = resolve_dfspath(talloc_tos(), conn, true, fname,
+ &resolved_fname);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ /*
+ * For PATH_NOT_COVERED we had
+ * reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
+ * ERRSRV, ERRbadpath);
+ * Need to fix in callers
+ */
+ goto fail;
+ }
+ fname = resolved_fname;
+ }
+
/*
* Calculate the filename from the root_dir_if if necessary.
*/
@@ -3410,24 +3433,6 @@ NTSTATUS create_file_default(connection_struct *conn,
}
}
- if ((req != NULL) && (req->flags2 & FLAGS2_DFS_PATHNAMES)) {
- char *resolved_fname;
-
- status = resolve_dfspath(talloc_tos(), conn, true, fname,
- &resolved_fname);
-
- if (!NT_STATUS_IS_OK(status)) {
- /*
- * For PATH_NOT_COVERED we had
- * reply_botherror(req, NT_STATUS_PATH_NOT_COVERED,
- * ERRSRV, ERRbadpath);
- * Need to fix in callers
- */
- goto fail;
- }
- fname = resolved_fname;
- }
-
/*
* Check if POSIX semantics are wanted.
*/
--
Samba Shared Repository
More information about the samba-cvs
mailing list