[SCM] Samba Shared Repository - branch master updated

Stefan Metzmacher metze at samba.org
Wed Jul 6 11:08:01 MDT 2011


The branch, master has been updated
       via  0b8184d s4:torture/smb2: s/smb2cli_unlock/test_smb2_unlock
       via  43c865a s4:torture/smb2: s/smb2cli_lock/test_smb2_lock
       via  8a22906 s3:libsmb: use clistr_pull_talloc() in cli_qfilename()
       via  a1df729 s3:libsmb: let cli_qfileinfo[_recv]() return recv_flags2
       via  2b0cc3c s3:libsmb: use clistr_pull_talloc() in cli_get_fs_volume_info()
       via  27736be s3:libsmb: the SMB_QUERY_FS_VOLUME_INFO response needs at least 18 data bytes
       via  bc98d00 s3:libsmb: don't use cli->inbuf in cli_dfs_get_referral()
       via  af61f6f s3:libsmb: fix error handling in cli_dfs_get_referral()
      from  f9601a9 s3:sharesec: return an error if get_share_security() returns NULL

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


- Log -----------------------------------------------------------------
commit 0b8184d9d40c6ccb10209973e6bbeccee4dc000a
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 17:52:33 2011 +0200

    s4:torture/smb2: s/smb2cli_unlock/test_smb2_unlock
    
    metze
    
    Autobuild-User: Stefan Metzmacher <metze at samba.org>
    Autobuild-Date: Wed Jul  6 19:07:42 CEST 2011 on sn-devel-104

commit 43c865a38e534ec6f01643f9609cbccd9de976f8
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 17:52:33 2011 +0200

    s4:torture/smb2: s/smb2cli_lock/test_smb2_lock
    
    metze

commit 8a2290667ca4c530321d366d3dd09f4757e9ac1d
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 14:35:13 2011 +0200

    s3:libsmb: use clistr_pull_talloc() in cli_qfilename()
    
    metze

commit a1df729f7b498c770a013ddabb38d0b2e8608b67
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 14:04:15 2011 +0200

    s3:libsmb: let cli_qfileinfo[_recv]() return recv_flags2
    
    metze

commit 2b0cc3c412d2cad5e35728f86cc66109f5dc4676
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 13:57:20 2011 +0200

    s3:libsmb: use clistr_pull_talloc() in cli_get_fs_volume_info()
    
    metze

commit 27736bed83191ccad69e5ad7732cc8ed60c5864f
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 13:21:41 2011 +0200

    s3:libsmb: the SMB_QUERY_FS_VOLUME_INFO response needs at least 18 data bytes
    
    metze

commit bc98d004c9dc22ff1438bfd1d9ddeaca5a3f6179
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 13:04:26 2011 +0200

    s3:libsmb: don't use cli->inbuf in cli_dfs_get_referral()
    
    The rdata buffer returned by cli_trans() doesn't belong to
    cli->inbuf, so don't use it.
    
    metze

commit af61f6fce6a219a78238d7187476addaa1e00525
Author: Stefan Metzmacher <metze at samba.org>
Date:   Wed Jul 6 15:57:22 2011 +0200

    s3:libsmb: fix error handling in cli_dfs_get_referral()
    
    We should not return NT_STATUS_OK on error.
    
    metze

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

Summary of changes:
 source3/client/client.c     |    7 +++--
 source3/libsmb/clidfs.c     |   26 +++++++++++++++++-------
 source3/libsmb/clifile.c    |   14 ++++++++++--
 source3/libsmb/clifsinfo.c  |   34 ++++++++++++++++++++++++++------
 source3/libsmb/clirap.c     |   32 ++++++++++++++++++++++++++----
 source3/libsmb/clirap.h     |    7 +++--
 source3/libsmb/proto.h      |    3 +-
 source3/torture/torture.c   |    6 ++--
 source4/torture/smb2/lock.c |   44 +++++++++++++++++++++---------------------
 9 files changed, 118 insertions(+), 55 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/client/client.c b/source3/client/client.c
index e2efad8..aa26d99 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -3767,12 +3767,13 @@ static int cmd_rename(void)
 
 static int cmd_volume(void)
 {
-	fstring volname;
-	uint32 serial_num;
+	char *volname;
+	uint32_t serial_num;
 	time_t create_date;
 	NTSTATUS status;
 
-	status = cli_get_fs_volume_info(cli, volname, &serial_num,
+	status = cli_get_fs_volume_info(cli, talloc_tos(),
+					&volname, &serial_num,
 					&create_date);
 	if (!NT_STATUS_IS_OK(status)) {
 		d_printf("Error %s getting volume info\n", nt_errstr(status));
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c
index 9c0f1f4..2287812 100644
--- a/source3/libsmb/clidfs.c
+++ b/source3/libsmb/clidfs.c
@@ -608,7 +608,8 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 {
 	unsigned int data_len = 0;
 	unsigned int param_len = 0;
-	uint16 setup[1];
+	uint16_t setup[1];
+	uint16_t recv_flags2;
 	uint8_t *param = NULL;
 	uint8_t *rdata = NULL;
 	char *p;
@@ -643,16 +644,13 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 			   setup, 1, 0,
 			   param, param_len, 2,
 			   NULL, 0, cli->max_xmit,
-			   NULL,
+			   &recv_flags2,
 			   NULL, 0, NULL, /* rsetup */
 			   NULL, 0, NULL,
 			   &rdata, 4, &data_len);
 	if (!NT_STATUS_IS_OK(status)) {
 		goto out;
 	}
-	if (data_len < 4) {
-		goto out;
-	}
 
 	endp = (char *)rdata + data_len;
 
@@ -666,6 +664,7 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 	 * to get the number of bytes consumed from
 	 * the incoming path. */
 
+	errno = 0;
 	if (pull_string_talloc(talloc_tos(),
 			NULL,
 			0,
@@ -673,9 +672,15 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 			path_ucs,
 			consumed_ucs,
 			STR_UNICODE) == 0) {
+		if (errno != 0) {
+			status = map_nt_error_from_unix(errno);
+		} else {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
+		}
 		goto out;
 	}
 	if (consumed_path == NULL) {
+		status = map_nt_error_from_unix(errno);
 		goto out;
 	}
 	*consumed = strlen(consumed_path);
@@ -690,6 +695,7 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 					 num_referrals);
 
 		if (!referrals) {
+			status = NT_STATUS_NO_MEMORY;
 			goto out;
 		}
 		/* start at the referrals array */
@@ -712,21 +718,25 @@ NTSTATUS cli_dfs_get_referral(TALLOC_CTX *ctx,
 			referrals[i].ttl       = SVAL(p, 10);
 
 			if (p + node_offset > endp) {
+				status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 				goto out;
 			}
-			clistr_pull_talloc(ctx, cli->inbuf,
-					   SVAL(cli->inbuf, smb_flg2),
+			clistr_pull_talloc(referrals,
+					   (const char *)rdata,
+					   recv_flags2,
 					   &referrals[i].dfspath,
 					   p+node_offset,
-					   cli->bufsize - ((p+node_offset)-cli->inbuf),
+					   PTR_DIFF(endp, p+node_offset),
 					   STR_TERMINATE|STR_UNICODE);
 
 			if (!referrals[i].dfspath) {
+				status = map_nt_error_from_unix(errno);
 				goto out;
 			}
 			p += ref_size;
 		}
 		if (i < num_referrals) {
+			status = NT_STATUS_INVALID_NETWORK_RESPONSE;
 			goto out;
 		}
 	}
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index 88cecd5..eab278f 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -5059,6 +5059,7 @@ struct cli_qfileinfo_state {
 	uint16_t setup[1];
 	uint8_t param[4];
 	uint8_t *data;
+	uint16_t recv_flags2;
 	uint32_t min_rdata;
 	uint8_t *rdata;
 	uint32_t num_rdata;
@@ -5118,7 +5119,9 @@ static void cli_qfileinfo_done(struct tevent_req *subreq)
 		req, struct cli_qfileinfo_state);
 	NTSTATUS status;
 
-	status = cli_trans_recv(subreq, state, NULL, NULL, 0, NULL,
+	status = cli_trans_recv(subreq, state,
+				&state->recv_flags2,
+				NULL, 0, NULL,
 				NULL, 0, NULL,
 				&state->rdata, state->min_rdata,
 				&state->num_rdata);
@@ -5129,6 +5132,7 @@ static void cli_qfileinfo_done(struct tevent_req *subreq)
 }
 
 NTSTATUS cli_qfileinfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+			    uint16_t *recv_flags2,
 			    uint8_t **rdata, uint32_t *num_rdata)
 {
 	struct cli_qfileinfo_state *state = tevent_req_data(
@@ -5138,6 +5142,10 @@ NTSTATUS cli_qfileinfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
 	if (tevent_req_is_nterror(req, &status)) {
 		return status;
 	}
+
+	if (recv_flags2 != NULL) {
+		*recv_flags2 = state->recv_flags2;
+	}
 	if (rdata != NULL) {
 		*rdata = talloc_move(mem_ctx, &state->rdata);
 	} else {
@@ -5151,7 +5159,7 @@ NTSTATUS cli_qfileinfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
 
 NTSTATUS cli_qfileinfo(TALLOC_CTX *mem_ctx, struct cli_state *cli,
 		       uint16_t fnum, uint16_t level, uint32_t min_rdata,
-		       uint32_t max_rdata,
+		       uint32_t max_rdata, uint16_t *recv_flags2,
 		       uint8_t **rdata, uint32_t *num_rdata)
 {
 	TALLOC_CTX *frame = talloc_stackframe();
@@ -5178,7 +5186,7 @@ NTSTATUS cli_qfileinfo(TALLOC_CTX *mem_ctx, struct cli_state *cli,
 	if (!tevent_req_poll_ntstatus(req, ev, &status)) {
 		goto fail;
 	}
-	status = cli_qfileinfo_recv(req, mem_ctx, rdata, num_rdata);
+	status = cli_qfileinfo_recv(req, mem_ctx, recv_flags2, rdata, num_rdata);
  fail:
 	TALLOC_FREE(frame);
 	return status;
diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c
index 78024c8..02b2578 100644
--- a/source3/libsmb/clifsinfo.c
+++ b/source3/libsmb/clifsinfo.c
@@ -354,15 +354,20 @@ fail:
 	return status;
 }
 
-NTSTATUS cli_get_fs_volume_info(struct cli_state *cli, fstring volume_name,
-				uint32 *pserial_number, time_t *pdate)
+NTSTATUS cli_get_fs_volume_info(struct cli_state *cli,
+				TALLOC_CTX *mem_ctx,
+				char **_volume_name,
+				uint32_t *pserial_number,
+				time_t *pdate)
 {
 	NTSTATUS status;
-	uint16 setup[1];
+	uint16_t recv_flags2;
+	uint16_t setup[1];
 	uint8_t param[2];
 	uint8_t *rdata;
 	uint32_t rdata_count;
 	unsigned int nlen;
+	char *volume_name = NULL;
 
 	SSVAL(setup, 0, TRANSACT2_QFSINFO);
 	SSVAL(param,0,SMB_QUERY_FS_VOLUME_INFO);
@@ -372,10 +377,10 @@ NTSTATUS cli_get_fs_volume_info(struct cli_state *cli, fstring volume_name,
 			   setup, 1, 0,
 			   param, 2, 0,
 			   NULL, 0, 560,
-			   NULL,
+			   &recv_flags2,
 			   NULL, 0, NULL,
 			   NULL, 0, NULL,
-			   &rdata, 10, &rdata_count);
+			   &rdata, 18, &rdata_count);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
@@ -389,13 +394,28 @@ NTSTATUS cli_get_fs_volume_info(struct cli_state *cli, fstring volume_name,
 		*pserial_number = IVAL(rdata,8);
 	}
 	nlen = IVAL(rdata,12);
-	clistr_pull(cli->inbuf, volume_name, rdata + 18, sizeof(fstring),
-		    nlen, STR_UNICODE);
+	if (nlen > (rdata_count - 18)) {
+		TALLOC_FREE(rdata);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
+	clistr_pull_talloc(mem_ctx,
+			   (const char *)rdata,
+			   recv_flags2,
+			   &volume_name,
+			   rdata + 18,
+			   nlen, STR_UNICODE);
+	if (volume_name == NULL) {
+		status = map_nt_error_from_unix(errno);
+		TALLOC_FREE(rdata);
+		return status;
+	}
 
 	/* todo: but not yet needed
 	 *       return the other stuff
 	 */
 
+	*_volume_name = volume_name;
 	TALLOC_FREE(rdata);
 	return NT_STATUS_OK;
 }
diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c
index e5ff1ab..96003c1 100644
--- a/source3/libsmb/clirap.c
+++ b/source3/libsmb/clirap.c
@@ -1064,23 +1064,44 @@ static bool parse_streams_blob(TALLOC_CTX *mem_ctx, const uint8_t *rdata,
  Send a qfileinfo QUERY_FILE_NAME_INFO call.
 ****************************************************************************/
 
-NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name,
-		       size_t namelen)
+NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum,
+		       TALLOC_CTX *mem_ctx, char **_name)
 {
+	uint16_t recv_flags2;
 	uint8_t *rdata;
 	uint32_t num_rdata;
 	NTSTATUS status;
+	char *name = NULL;
+	uint32_t namelen;
 
 	status = cli_qfileinfo(talloc_tos(), cli, fnum,
 			       SMB_QUERY_FILE_NAME_INFO,
-			       4, cli->max_xmit,
+			       4, cli->max_xmit, &recv_flags2,
 			       &rdata, &num_rdata);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
 	}
 
-	clistr_pull((const char *)rdata, name, rdata+4, namelen, IVAL(rdata, 0),
-		    STR_UNICODE);
+	namelen = IVAL(rdata, 0);
+	if (namelen > (num_rdata - 4)) {
+		TALLOC_FREE(rdata);
+		return NT_STATUS_INVALID_NETWORK_RESPONSE;
+	}
+
+	clistr_pull_talloc(mem_ctx,
+			   (const char *)rdata,
+			   recv_flags2,
+			   &name,
+			   rdata + 4,
+			   namelen,
+			   STR_UNICODE);
+	if (name == NULL) {
+		status = map_nt_error_from_unix(errno);
+		TALLOC_FREE(rdata);
+		return status;
+	}
+
+	*_name = name;
 	TALLOC_FREE(rdata);
 	return NT_STATUS_OK;
 }
@@ -1110,6 +1131,7 @@ NTSTATUS cli_qfileinfo_basic(struct cli_state *cli, uint16_t fnum,
 	status = cli_qfileinfo(talloc_tos(), cli, fnum,
 			       SMB_QUERY_FILE_ALL_INFO,
 			       68, MIN(cli->max_xmit, 0xffff),
+			       NULL,
 			       &rdata, &num_rdata);
 	if (!NT_STATUS_IS_OK(status)) {
 		return status;
diff --git a/source3/libsmb/clirap.h b/source3/libsmb/clirap.h
index 26265de..de770db 100644
--- a/source3/libsmb/clirap.h
+++ b/source3/libsmb/clirap.h
@@ -94,8 +94,8 @@ NTSTATUS cli_qpathinfo_streams(struct cli_state *cli, const char *fname,
 			       TALLOC_CTX *mem_ctx,
 			       unsigned int *pnum_streams,
 			       struct stream_struct **pstreams);
-NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum, char *name,
-		       size_t namelen);
+NTSTATUS cli_qfilename(struct cli_state *cli, uint16_t fnum,
+		       TALLOC_CTX *mem_ctx, char **name);
 NTSTATUS cli_qfileinfo_basic(struct cli_state *cli, uint16_t fnum,
 			     uint16 *mode, SMB_OFF_T *size,
 			     struct timespec *create_time,
@@ -130,10 +130,11 @@ struct tevent_req *cli_qfileinfo_send(TALLOC_CTX *mem_ctx,
 				      uint16_t level, uint32_t min_rdata,
 				      uint32_t max_rdata);
 NTSTATUS cli_qfileinfo_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+			    uint16_t *recv_flags2,
 			    uint8_t **rdata, uint32_t *num_rdata);
 NTSTATUS cli_qfileinfo(TALLOC_CTX *mem_ctx, struct cli_state *cli,
 		       uint16_t fnum, uint16_t level, uint32_t min_rdata,
-		       uint32_t max_rdata,
+		       uint32_t max_rdata, uint16_t *recv_flags2,
 		       uint8_t **rdata, uint32_t *num_rdata);
 
 struct tevent_req *cli_flush_send(TALLOC_CTX *mem_ctx,
diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h
index 89f5857..1919b08 100644
--- a/source3/libsmb/proto.h
+++ b/source3/libsmb/proto.h
@@ -611,7 +611,8 @@ struct tevent_req *cli_get_fs_attr_info_send(TALLOC_CTX *mem_ctx,
 					     struct cli_state *cli);
 NTSTATUS cli_get_fs_attr_info_recv(struct tevent_req *req, uint32_t *fs_attr);
 NTSTATUS cli_get_fs_attr_info(struct cli_state *cli, uint32_t *fs_attr);
-NTSTATUS cli_get_fs_volume_info(struct cli_state *cli, fstring volume_name,
+NTSTATUS cli_get_fs_volume_info(struct cli_state *cli,
+				TALLOC_CTX *mem_ctx, char **volume_name,
 				uint32 *pserial_number, time_t *pdate);
 NTSTATUS cli_get_fs_full_size_info(struct cli_state *cli,
 				   uint64_t *total_allocation_units,
diff --git a/source3/torture/torture.c b/source3/torture/torture.c
index faa4326..7e2a5e7 100644
--- a/source3/torture/torture.c
+++ b/source3/torture/torture.c
@@ -3096,7 +3096,7 @@ static bool run_trans2test(int dummy)
 	const char *fname = "\\trans2.tst";
 	const char *dname = "\\trans2";
 	const char *fname2 = "\\trans2\\trans2.tst";
-	char pname[1024];
+	char *pname;
 	bool correct = True;
 	NTSTATUS status;
 	uint32_t fs_attr;
@@ -3123,7 +3123,7 @@ static bool run_trans2test(int dummy)
 		correct = False;
 	}
 
-	status = cli_qfilename(cli, fnum, pname, sizeof(pname));
+	status = cli_qfilename(cli, fnum, talloc_tos(), &pname);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("ERROR: qfilename failed (%s)\n", nt_errstr(status));
 		correct = False;
@@ -3246,7 +3246,7 @@ static NTSTATUS new_trans(struct cli_state *pcli, int fnum, int level)
 	NTSTATUS status;
 
 	status = cli_qfileinfo(talloc_tos(), pcli, fnum, level, 0,
-			       pcli->max_xmit, &buf, &len);
+			       pcli->max_xmit, NULL, &buf, &len);
 	if (!NT_STATUS_IS_OK(status)) {
 		printf("ERROR: qfileinfo (%d) failed (%s)\n", level,
 		       nt_errstr(status));
diff --git a/source4/torture/smb2/lock.c b/source4/torture/smb2/lock.c
index fe82813..3483126 100644
--- a/source4/torture/smb2/lock.c
+++ b/source4/torture/smb2/lock.c
@@ -2608,8 +2608,8 @@ done:
 	return ret;
 }
 
-static NTSTATUS smb2cli_lock(struct smb2_tree *tree, struct smb2_handle h,
-			     uint64_t offset, uint64_t length, bool exclusive)
+static NTSTATUS test_smb2_lock(struct smb2_tree *tree, struct smb2_handle h,
+			       uint64_t offset, uint64_t length, bool exclusive)
 {
 	struct smb2_lock lck;
 	struct smb2_lock_element el[1];
@@ -2632,8 +2632,8 @@ static NTSTATUS smb2cli_lock(struct smb2_tree *tree, struct smb2_handle h,
 	return status;
 }
 
-static NTSTATUS smb2cli_unlock(struct smb2_tree *tree, struct smb2_handle h,
-			       uint64_t offset, uint64_t length)
+static NTSTATUS test_smb2_unlock(struct smb2_tree *tree, struct smb2_handle h,
+				 uint64_t offset, uint64_t length)
 {
 	struct smb2_lock lck;
 	struct smb2_lock_element el[1];
@@ -2693,45 +2693,45 @@ static bool test_overlap(struct torture_context *torture,
 
 	torture_comment(torture, "Testing overlapping locks:\n");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 0, 4, true)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h, 2, 4, true));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 0, 4, true)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h, 2, 4, true));
 	EXPECTED(ret, false);
 	torture_comment(torture, "the same session/handle %s set overlapping "
 				 "exclusive locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 10, 4, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h, 12, 4, false));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 10, 4, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h, 12, 4, false));
 	EXPECTED(ret, true);
 	torture_comment(torture, "the same session/handle %s set overlapping "
 				 "shared locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 20, 4, true)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree2, h3, 22, 4, true));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 20, 4, true)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree2, h3, 22, 4, true));
 	EXPECTED(ret, false);
 	torture_comment(torture, "a different session %s set overlapping "
 				 "exclusive locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 30, 4, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree2, h3, 32, 4, false));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 30, 4, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree2, h3, 32, 4, false));
 	EXPECTED(ret, true);
 	torture_comment(torture, "a different session %s set overlapping "
 				 "shared locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 40, 4, true)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h2, 42, 4, true));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 40, 4, true)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h2, 42, 4, true));
 	EXPECTED(ret, false);
 	torture_comment(torture, "a different handle %s set overlapping "
 				 "exclusive locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 50, 4, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h2, 52, 4, false));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 50, 4, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h2, 52, 4, false));
 	EXPECTED(ret, true);
 	torture_comment(torture, "a different handle %s set overlapping "
 				 "shared locks\n", ret?"can":"cannot");
 
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 110, 4, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h, 112, 4, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_unlock(tree, h, 110, 6));
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 110, 4, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h, 112, 4, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_unlock(tree, h, 110, 6));
 	EXPECTED(ret, false);
 	torture_comment(torture, "the same handle %s coalesce read locks\n",
 				 ret?"can":"cannot");
@@ -2742,11 +2742,11 @@ static bool test_overlap(struct torture_context *torture,
 	CHECK_STATUS(status, NT_STATUS_OK);
 	status = torture_smb2_testfile(tree, fname, &h2);
 	CHECK_STATUS(status, NT_STATUS_OK);
-	ret = NT_STATUS_IS_OK(smb2cli_lock(tree, h, 0, 8, false)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h2, 0, 1, false)) &&
+	ret = NT_STATUS_IS_OK(test_smb2_lock(tree, h, 0, 8, false)) &&
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h2, 0, 1, false)) &&
 	      NT_STATUS_IS_OK(smb2_util_close(tree, h)) &&
 	      NT_STATUS_IS_OK(torture_smb2_testfile(tree, fname, &h)) &&
-	      NT_STATUS_IS_OK(smb2cli_lock(tree, h, 7, 1, true));
+	      NT_STATUS_IS_OK(test_smb2_lock(tree, h, 7, 1, true));
 	EXPECTED(ret, true);
 	torture_comment(torture, "the server %s have the NT byte range lock "
 				 "bug\n", !ret?"does":"doesn't");


-- 
Samba Shared Repository


More information about the samba-cvs mailing list