[SCM] Samba Shared Repository - branch master updated

Steve French sfrench at samba.org
Thu Oct 23 12:45:02 MDT 2014


The branch, master has been updated
       via  95bf43b s3: libsmbclient - smb2. MacOSX 10 SMB2 server doesn't set STATUS_NO_MORE_FILES when handed a non-wildcard path.
      from  4bec186 samba-tool group add: Add option --nis-domain and --gid

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 95bf43bc6a0b6a4a47b8a556eee3b78446ea4123
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Oct 21 14:41:32 2014 -0700

    s3: libsmbclient - smb2. MacOSX 10 SMB2 server doesn't set STATUS_NO_MORE_FILES when handed a non-wildcard path.
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Steve French <smfrench at gmail.com>
    Tested-by: Ralph Boehme <slow at samba.org>
    
    Autobuild-User(master): Steve French <sfrench at samba.org>
    Autobuild-Date(master): Thu Oct 23 20:44:31 CEST 2014 on sn-devel-104

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

Summary of changes:
 source3/libsmb/cli_smb2_fnum.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/cli_smb2_fnum.c b/source3/libsmb/cli_smb2_fnum.c
index a099e03..de4bd6f 100644
--- a/source3/libsmb/cli_smb2_fnum.c
+++ b/source3/libsmb/cli_smb2_fnum.c
@@ -667,6 +667,7 @@ NTSTATUS cli_smb2_list(struct cli_state *cli,
 	bool processed_file = false;
 	TALLOC_CTX *frame = talloc_stackframe();
 	TALLOC_CTX *subframe = NULL;
+	bool mask_has_wild;
 
 	if (smbXcli_conn_has_async_calls(cli->conn)) {
 		/*
@@ -690,6 +691,8 @@ NTSTATUS cli_smb2_list(struct cli_state *cli,
 		goto fail;
         }
 
+	mask_has_wild = ms_has_wild(mask);
+
 	status = cli_smb2_create_fnum(cli,
 			parent_dir,
 			0,			/* create_flags */
@@ -791,6 +794,17 @@ NTSTATUS cli_smb2_list(struct cli_state *cli,
 
 		TALLOC_FREE(subframe);
 
+		if (!mask_has_wild) {
+			/*
+			 * MacOSX 10 doesn't set STATUS_NO_MORE_FILES
+			 * when handed a non-wildcard path. Do it
+			 * for the server (with a non-wildcard path
+			 * there should only ever be one file returned.
+			 */
+			status = STATUS_NO_MORE_FILES;
+			break;
+		}
+
 	} while (NT_STATUS_IS_OK(status));
 
 	if (NT_STATUS_EQUAL(status, STATUS_NO_MORE_FILES)) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list