[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Mon Feb 27 22:59:05 MST 2012


The branch, master has been updated
       via  43dd033 s3:torture/test_smb2: test a tree_connect during reauth
       via  c64a85e s3:torture/test_smb2: check directory listing during reauth
      from  62d8d03 s4:selftest: skip smb2.session testsuite

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


- Log -----------------------------------------------------------------
commit 43dd03361882af335c6b5d6989ad3894621b5039
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Feb 28 05:11:23 2012 +0100

    s3:torture/test_smb2: test a tree_connect during reauth
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Tue Feb 28 06:58:44 CET 2012 on sn-devel-104

commit c64a85ee191d1554cbbd662809de0a57d8de6c69
Author: Stefan Metzmacher <metze at samba.org>
Date:   Tue Feb 28 04:24:12 2012 +0100

    s3:torture/test_smb2: check directory listing during reauth
    
    metze

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

Summary of changes:
 source3/torture/test_smb2.c |   89 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 89 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/torture/test_smb2.c b/source3/torture/test_smb2.c
index 9334ab7..83d59ff 100644
--- a/source3/torture/test_smb2.c
+++ b/source3/torture/test_smb2.c
@@ -1036,12 +1036,16 @@ bool run_smb2_session_reauth(int dummy)
 	NTSTATUS status;
 	bool ok;
 	uint64_t fid_persistent, fid_volatile;
+	uint64_t dir_persistent, dir_volatile;
+	uint8_t *dir_data;
+	uint32_t dir_data_length;
 	struct tevent_context *ev;
 	struct tevent_req *subreq;
 	DATA_BLOB in_blob = data_blob_null;
 	DATA_BLOB out_blob;
 	struct auth_generic_state *auth_generic_state;
 	struct iovec *recv_iov;
+	uint32_t saved_tid;
 
 	printf("Starting SMB2-SESSION_REAUTH\n");
 
@@ -1094,6 +1098,33 @@ bool run_smb2_session_reauth(int dummy)
 		return false;
 	}
 
+	status = smb2cli_create(cli, "",
+			SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
+			SMB2_IMPERSONATION_IMPERSONATION, /* impersonation_level, */
+			SEC_STD_SYNCHRONIZE|
+			SEC_DIR_LIST|
+			SEC_DIR_READ_ATTRIBUTE, /* desired_access, */
+			0, /* file_attributes, */
+			FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, /* share_access, */
+			FILE_OPEN, /* create_disposition, */
+			FILE_SYNCHRONOUS_IO_NONALERT|FILE_DIRECTORY_FILE, /* create_options, */
+			NULL, /* smb2_create_blobs *blobs */
+			&dir_persistent,
+			&dir_volatile);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("smb2cli_create returned %s\n", nt_errstr(status));
+		return false;
+	}
+
+	status = smb2cli_query_directory(
+		cli, 1, 0x3, 0, dir_persistent, dir_volatile,
+		"session-reauth.txt", 0xffff,
+		talloc_tos(), &dir_data, &dir_data_length);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("smb2cli_query_directory returned %s\n", nt_errstr(status));
+		return false;
+	}
+
 	status = auth_generic_client_prepare(talloc_tos(), &auth_generic_state);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("auth_generic_client_prepare returned %s\n", nt_errstr(status));
@@ -1178,6 +1209,15 @@ bool run_smb2_session_reauth(int dummy)
 		return false;
 	}
 
+	status = smb2cli_query_directory(
+		cli, 1, 0x3, 0, dir_persistent, dir_volatile,
+		"session-reauth.txt", 0xffff,
+		talloc_tos(), &dir_data, &dir_data_length);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("smb2cli_query_directory returned %s\n", nt_errstr(status));
+		return false;
+	}
+
 	status = smb2cli_create(cli, "session-reauth-invalid.txt",
 			SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
 			SMB2_IMPERSONATION_IMPERSONATION, /* impersonation_level, */
@@ -1194,6 +1234,32 @@ bool run_smb2_session_reauth(int dummy)
 		return false;
 	}
 
+	status = smb2cli_create(cli, "",
+			SMB2_OPLOCK_LEVEL_NONE, /* oplock_level, */
+			SMB2_IMPERSONATION_IMPERSONATION, /* impersonation_level, */
+			SEC_STD_SYNCHRONIZE|
+			SEC_DIR_LIST|
+			SEC_DIR_READ_ATTRIBUTE, /* desired_access, */
+			0, /* file_attributes, */
+			FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE, /* share_access, */
+			FILE_OPEN, /* create_disposition, */
+			FILE_SYNCHRONOUS_IO_NONALERT|FILE_DIRECTORY_FILE, /* create_options, */
+			NULL, /* smb2_create_blobs *blobs */
+			&dir_persistent,
+			&dir_volatile);
+	if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
+		printf("smb2cli_create returned %s\n", nt_errstr(status));
+		return false;
+	}
+
+	saved_tid = cli->smb2.tid;
+	status = cli_tree_connect(cli, share, "?????", "", 0);
+	if (!NT_STATUS_EQUAL(status, NT_STATUS_INVALID_HANDLE)) {
+		printf("cli_tree_connect returned %s\n", nt_errstr(status));
+		return false;
+	}
+	cli->smb2.tid = saved_tid;
+
 	subreq = smb2cli_session_setup_send(talloc_tos(), ev,
 					    cli->conn,
 					    cli->timeout,
@@ -1250,11 +1316,34 @@ bool run_smb2_session_reauth(int dummy)
 		return false;
 	}
 
+	status = smb2cli_query_directory(
+		cli, 1, 0x3, 0, dir_persistent, dir_volatile,
+		"session-reauth.txt", 0xffff,
+		talloc_tos(), &dir_data, &dir_data_length);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("smb2cli_query_directory returned %s\n", nt_errstr(status));
+		return false;
+	}
+
+	status = smb2cli_close(cli, 0, dir_persistent, dir_volatile);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("smb2cli_close returned %s\n", nt_errstr(status));
+		return false;
+	}
+
 	status = smb2cli_close(cli, 0, fid_persistent, fid_volatile);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("smb2cli_close returned %s\n", nt_errstr(status));
 		return false;
 	}
 
+	saved_tid = cli->smb2.tid;
+	status = cli_tree_connect(cli, share, "?????", "", 0);
+	if (!NT_STATUS_IS_OK(status)) {
+		printf("cli_tree_connect returned %s\n", nt_errstr(status));
+		return false;
+	}
+	cli->smb2.tid = saved_tid;
+
 	return true;
 }


-- 
Samba Shared Repository


More information about the samba-cvs mailing list