[SCM] Samba Shared Repository - branch v3-4-test updated - release-4-0-0alpha7-1053-g689664a

Jeremy Allison jra at samba.org
Fri May 22 22:56:23 GMT 2009


The branch, v3-4-test has been updated
       via  689664ad7acf13b07409abd4c2820dbe10255b68 (commit)
       via  935a1a89c6c027e068f79e3686396c28812f9e67 (commit)
      from  2b6dbddb9cc723fcbd2e4e22a9404d6b4ff805d7 (commit)

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


- Log -----------------------------------------------------------------
commit 689664ad7acf13b07409abd4c2820dbe10255b68
Author: Jeremy Allison <jra at samba.org>
Date:   Fri May 22 15:56:59 2009 -0700

    Ensure we return NT_STATUS_FILE_IS_A_DIRECTORY on a posix open on a
    directory name.
    Jeremy.

commit 935a1a89c6c027e068f79e3686396c28812f9e67
Author: Jeremy Allison <jra at samba.org>
Date:   Fri May 22 15:56:46 2009 -0700

    Test that POSIX open of a directory returns NT_STATUS_FILE_IS_A_DIRECTORY (ERRDOS, EISDIR).
    Jeremy.

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

Summary of changes:
 source3/smbd/trans2.c     |    2 +-
 source3/torture/torture.c |   12 ++++++++++++
 2 files changed, 13 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 3a28a87..4eb44e3 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -6487,7 +6487,7 @@ static NTSTATUS smb_posix_open(connection_struct *conn,
 		(FILE_SHARE_READ | FILE_SHARE_WRITE |	/* share_access */
 		    FILE_SHARE_DELETE),
 		create_disp,				/* create_disposition*/
-		0,					/* create_options */
+		FILE_NON_DIRECTORY_FILE,		/* create_options */
 		mod_unixmode,				/* file_attributes */
 		oplock_request,				/* oplock_request */
 		0,					/* allocation_size */
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index 1f099da..b9c3e34 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -4239,6 +4239,18 @@ static bool run_simple_posix_open_test(int dummy)
 		goto out;
 	}
 
+	/* What happens when we try and POSIX open a directory ? */
+	fnum1 = cli_posix_open(cli1, dname, O_RDONLY, 0);
+	if (fnum1 != -1) {
+		printf("POSIX open of directory %s succeeded, should have failed.\n", fname);
+		goto out;
+	} else {
+		if (!check_error(__LINE__, cli1, ERRDOS, EISDIR,
+				NT_STATUS_FILE_IS_A_DIRECTORY)) {
+			goto out;
+		}
+	}
+
 	if (!cli_posix_rmdir(cli1, dname)) {
 		printf("POSIX rmdir failed (%s)\n", cli_errstr(cli1));
 		goto out;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list