[SCM] Samba Shared Repository - branch v3-2-test updated - release-3-2-0pre2-3026-g1b839eb

Jeremy Allison jra at samba.org
Mon Sep 15 21:14:26 GMT 2008


The branch, v3-2-test has been updated
       via  1b839eb9e4a6312e638d1856d1225b170525da7e (commit)
      from  7f60557c4ebc8de45b0c1bceda2be8e50d88e3ef (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 1b839eb9e4a6312e638d1856d1225b170525da7e
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Sep 15 14:13:23 2008 -0700

    Fix bug 5761 "open of mangled directory name results in 'is a stream name'"
    reported by Regan Heath <Regan.Heath at BridgeHeadSoftware.com>.
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source/smbd/open.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/smbd/open.c b/source/smbd/open.c
index ea10cdc..afe8d5e 100644
--- a/source/smbd/open.c
+++ b/source/smbd/open.c
@@ -1854,7 +1854,8 @@ NTSTATUS open_file_ntcreate(connection_struct *conn,
 
 	/* Handle strange delete on close create semantics. */
 	if ((create_options & FILE_DELETE_ON_CLOSE)
-	    && (is_ntfs_stream_name(fname)
+	    && (((conn->fs_capabilities & FILE_NAMED_STREAMS)
+			&& is_ntfs_stream_name(fname))
 		|| can_set_initial_delete_on_close(lck))) {
 		status = can_set_delete_on_close(fsp, True, new_dos_attributes);
 
@@ -2118,7 +2119,9 @@ NTSTATUS open_directory(connection_struct *conn,
 		 (unsigned int)create_disposition,
 		 (unsigned int)file_attributes));
 
-	if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) && is_ntfs_stream_name(fname)) {
+	if (!(file_attributes & FILE_FLAG_POSIX_SEMANTICS) &&
+			(conn->fs_capabilities & FILE_NAMED_STREAMS) &&
+			is_ntfs_stream_name(fname)) {
 		DEBUG(2, ("open_directory: %s is a stream name!\n", fname));
 		return NT_STATUS_NOT_A_DIRECTORY;
 	}
@@ -2961,7 +2964,8 @@ NTSTATUS create_file(connection_struct *conn,
 			 * Check to see if this is a mac fork of some kind.
 			 */
 
-			if (is_ntfs_stream_name(fname)) {
+			if ((conn->fs_capabilities & FILE_NAMED_STREAMS) &&
+					is_ntfs_stream_name(fname)) {
 				status = NT_STATUS_OBJECT_PATH_NOT_FOUND;
 				goto fail;
 			}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list