[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha6-145-g7f25e0d

Volker Lendecke vlendec at samba.org
Mon Jan 26 04:40:35 GMT 2009


The branch, master has been updated
       via  7f25e0da7348d786a36fa14403938b4f209fb52b (commit)
      from  6baf760d176cc5ea8eb0cba6d68171f1950c1b75 (commit)

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


- Log -----------------------------------------------------------------
commit 7f25e0da7348d786a36fa14403938b4f209fb52b
Author: Volker Lendecke <vl at samba.org>
Date:   Mon Jan 26 03:38:05 2009 +0100

    Decouple clistr_pull from struct cli_state->inbuf

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

Summary of changes:
 source3/include/proto.h       |    4 ++--
 source3/include/safe_string.h |   12 ++++++------
 source3/libsmb/cliconnect.c   |   38 +++++++++++++++++++++++++-------------
 source3/libsmb/clidfs.c       |    7 ++++---
 source3/libsmb/clifile.c      |    2 +-
 source3/libsmb/clifsinfo.c    |    6 ++++--
 source3/libsmb/clilist.c      |   10 +++++-----
 source3/libsmb/clirap.c       |    6 ++++--
 source3/libsmb/clistr.c       |   12 ++++++------
 9 files changed, 57 insertions(+), 40 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/proto.h b/source3/include/proto.h
index 1414ba8..8838419 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -2825,7 +2825,7 @@ size_t clistr_push_fn(const char *function,
 			int flags);
 size_t clistr_pull_fn(const char *function,
 			unsigned int line,
-			struct cli_state *cli,
+			const char *inbuf,
 			char *dest,
 			const void *src,
 			int dest_len,
@@ -2834,7 +2834,7 @@ size_t clistr_pull_fn(const char *function,
 size_t clistr_pull_talloc_fn(const char *function,
 				unsigned int line,
 				TALLOC_CTX *ctx,
-				struct cli_state *cli,
+				const char *inbuf,
 				char **pp_dest,
 				const void *src,
 				int src_len,
diff --git a/source3/include/safe_string.h b/source3/include/safe_string.h
index c030acf..a723096 100644
--- a/source3/include/safe_string.h
+++ b/source3/include/safe_string.h
@@ -146,13 +146,13 @@ size_t __unsafe_string_function_usage_here_char__(void);
 	clistr_push_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
 			cli, dest, src, dest_len, flags)
 
-#define clistr_pull(cli, dest, src, dest_len, src_len, flags) \
+#define clistr_pull(inbuf, dest, src, dest_len, src_len, flags) \
 	clistr_pull_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
-			cli, dest, src, dest_len, src_len, flags)
+			inbuf, dest, src, dest_len, src_len, flags)
 
-#define clistr_pull_talloc(ctx, cli, pp_dest, src, src_len, flags) \
+#define clistr_pull_talloc(ctx, inbuf, pp_dest, src, src_len, flags) \
 	clistr_pull_talloc_fn(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
-			ctx, cli, pp_dest, src, src_len, flags)
+			ctx, inbuf, pp_dest, src, src_len, flags)
 
 #define srvstr_push(base_ptr, smb_flags2, dest, src, dest_len, flags) \
 	srvstr_push_fn2(SAFE_STRING_FUNCTION_NAME, SAFE_STRING_LINE, \
@@ -200,10 +200,10 @@ size_t __unsafe_string_function_usage_here_char__(void);
     ? __unsafe_string_function_usage_here_size_t__() \
     : clistr_push_fn(fn_name, fn_line, cli, dest, src, dest_len, flags))
 
-#define clistr_pull_fn2(fn_name, fn_line, cli, dest, src, dest_len, srclen, flags) \
+#define clistr_pull_fn2(fn_name, fn_line, inbuf, dest, src, dest_len, srclen, flags) \
     (CHECK_STRING_SIZE(dest, dest_len) \
     ? __unsafe_string_function_usage_here_size_t__() \
-    : clistr_pull_fn(fn_name, fn_line, cli, dest, src, dest_len, srclen, flags))
+    : clistr_pull_fn(fn_name, fn_line, inbuf, dest, src, dest_len, srclen, flags))
 
 #define srvstr_push_fn2(fn_name, fn_line, base_ptr, smb_flags2, dest, src, dest_len, flags) \
     (CHECK_STRING_SIZE(dest, dest_len) \
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index 9e4266d..bc690f2 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -199,9 +199,12 @@ static NTSTATUS cli_session_setup_guest(struct cli_state *cli)
 	cli->vuid = SVAL(cli->inbuf,smb_uid);
 
 	p = smb_buf(cli->inbuf);
-	p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_os, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_type, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_domain, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
 
 	if (strstr(cli->server_type, "Samba")) {
 		cli->is_samba = True;
@@ -276,9 +279,12 @@ static NTSTATUS cli_session_setup_plaintext(struct cli_state *cli,
 
 	cli->vuid = SVAL(cli->inbuf,smb_uid);
 	p = smb_buf(cli->inbuf);
-	p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_os, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_type, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_domain, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
 	fstrcpy(cli->user_name, user);
 
 	if (strstr(cli->server_type, "Samba")) {
@@ -426,9 +432,12 @@ static NTSTATUS cli_session_setup_nt1(struct cli_state *cli, const char *user,
 	cli->vuid = SVAL(cli->inbuf,smb_uid);
 	
 	p = smb_buf(cli->inbuf);
-	p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), -1, STR_TERMINATE);
-	p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_os, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_type, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_domain, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
 
 	if (strstr(cli->server_type, "Samba")) {
 		cli->is_samba = True;
@@ -512,11 +521,13 @@ static DATA_BLOB cli_session_setup_blob_receive(struct cli_state *cli)
 	blob2 = data_blob(p, SVAL(cli->inbuf, smb_vwv3));
 
 	p += blob2.length;
-	p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE);
+	p += clistr_pull(cli->inbuf, cli->server_os, p, sizeof(fstring),
+			 -1, STR_TERMINATE);
 
 	/* w2k with kerberos doesn't properly null terminate this field */
 	len = smb_bufrem(cli->inbuf, p);
-	p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), len, 0);
+	p += clistr_pull(cli->inbuf, cli->server_type, p, sizeof(fstring),
+			 len, 0);
 
 	return blob2;
 }
@@ -1178,7 +1189,8 @@ bool cli_send_tconX(struct cli_state *cli,
 	if (cli_is_error(cli))
 		return False;
 
-	clistr_pull(cli, cli->dev, smb_buf(cli->inbuf), sizeof(fstring), -1, STR_TERMINATE|STR_ASCII);
+	clistr_pull(cli->inbuf, cli->dev, smb_buf(cli->inbuf), sizeof(fstring),
+		    -1, STR_TERMINATE|STR_ASCII);
 
 	if (cli->protocol >= PROTOCOL_NT1 &&
 	    smb_buflen(cli->inbuf) == 3) {
@@ -1350,7 +1362,7 @@ NTSTATUS cli_negprot_recv(struct async_req *req)
 		/* work out if they sent us a workgroup */
 		if (!(cli->capabilities & CAP_EXTENDED_SECURITY) &&
 		    smb_buflen(cli->inbuf) > 8) {
-			clistr_pull(cli, cli->server_domain,
+			clistr_pull(cli->inbuf, cli->server_domain,
 				    bytes+8, sizeof(cli->server_domain),
 				    num_bytes-8,
 				    STR_UNICODE|STR_NOALIGN);
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c
index d649c50..f853e4e 100644
--- a/source3/libsmb/clidfs.c
+++ b/source3/libsmb/clidfs.c
@@ -785,9 +785,10 @@ bool cli_dfs_get_referral(TALLOC_CTX *ctx,
 			if (p + node_offset > endp) {
 				goto out;
 			}
-			clistr_pull_talloc(ctx, cli, &referrals[i].dfspath,
-				p+node_offset, -1,
-				STR_TERMINATE|STR_UNICODE );
+			clistr_pull_talloc(ctx, cli->inbuf,
+					   &referrals[i].dfspath,
+					   p+node_offset, -1,
+					   STR_TERMINATE|STR_UNICODE);
 
 			if (!referrals[i].dfspath) {
 				goto out;
diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c
index ecb2bf0..02cd210 100644
--- a/source3/libsmb/clifile.c
+++ b/source3/libsmb/clifile.c
@@ -1751,7 +1751,7 @@ int cli_ctemp(struct cli_state *cli, const char *path, char **tmp_path)
 		if (!path2) {
 			return -1;
 		}
-		clistr_pull(cli, path2, p,
+		clistr_pull(cli->inbuf, path2, p,
 			    len+1, len, STR_ASCII);
 		*tmp_path = path2;
 	}
diff --git a/source3/libsmb/clifsinfo.c b/source3/libsmb/clifsinfo.c
index 5e73b61..77290d2 100644
--- a/source3/libsmb/clifsinfo.c
+++ b/source3/libsmb/clifsinfo.c
@@ -229,7 +229,8 @@ bool cli_get_fs_volume_info_old(struct cli_state *cli, fstring volume_name, uint
 		*pserial_number = IVAL(rdata,0);
 	}
 	nlen = CVAL(rdata,l2_vol_cch);
-	clistr_pull(cli, volume_name, rdata + l2_vol_szVolLabel, sizeof(fstring), nlen, STR_NOALIGN);
+	clistr_pull(cli->inbuf, volume_name, rdata + l2_vol_szVolLabel,
+		    sizeof(fstring), nlen, STR_NOALIGN);
 
 	/* todo: but not yet needed
 	 *       return the other stuff
@@ -290,7 +291,8 @@ bool cli_get_fs_volume_info(struct cli_state *cli, fstring volume_name, uint32 *
 		*pserial_number = IVAL(rdata,8);
 	}
 	nlen = IVAL(rdata,12);
-	clistr_pull(cli, volume_name, rdata + 18, sizeof(fstring), nlen, STR_UNICODE);
+	clistr_pull(cli->inbuf, volume_name, rdata + 18, sizeof(fstring),
+		    nlen, STR_UNICODE);
 
 	/* todo: but not yet needed
 	 *       return the other stuff
diff --git a/source3/libsmb/clilist.c b/source3/libsmb/clilist.c
index 1431b80..e604725 100644
--- a/source3/libsmb/clilist.c
+++ b/source3/libsmb/clilist.c
@@ -98,7 +98,7 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
 			   between win2000 and win9x for this call
 			   (tridge) */
 			ret = clistr_pull_talloc(ctx,
-						cli,
+						cli->inbuf,
 						&finfo->name,
 						p,
 						len+2,
@@ -127,7 +127,7 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
 				return pdata_end - base;
 			}
 			ret = clistr_pull_talloc(ctx,
-						cli,
+						cli->inbuf,
 						&finfo->name,
 						p,
 					 	len,
@@ -179,7 +179,7 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
 				/* stupid NT bugs. grr */
 				int flags = 0;
 				if (p[1] == 0 && namelen > 1) flags |= STR_UNICODE;
-				clistr_pull(cli, finfo->short_name, p,
+				clistr_pull(cli->inbuf, finfo->short_name, p,
 					    sizeof(finfo->short_name),
 					    slen, flags);
 			}
@@ -188,7 +188,7 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
 				return pdata_end - base;
 			}
 			ret = clistr_pull_talloc(ctx,
-						cli,
+						cli->inbuf,
 						&finfo->name,
 						p,
 				    		namelen,
@@ -514,7 +514,7 @@ static bool interpret_short_filename(TALLOC_CTX *ctx,
 	finfo->mtime_ts.tv_nsec = finfo->atime_ts.tv_nsec = 0;
 	finfo->size = IVAL(p,26);
 	ret = clistr_pull_talloc(ctx,
-			cli,
+			cli->inbuf,
 			&finfo->name,
 			p+30,
 			12,
diff --git a/source3/libsmb/clirap.c b/source3/libsmb/clirap.c
index 1656d9e..3f95e77 100644
--- a/source3/libsmb/clirap.c
+++ b/source3/libsmb/clirap.c
@@ -952,7 +952,8 @@ bool cli_qfilename(struct cli_state *cli, int fnum, char *name, size_t namelen)
 		return False;
 	}
 
-	clistr_pull(cli, name, rdata+4, namelen, IVAL(rdata, 0), STR_UNICODE);
+	clistr_pull(cli->inbuf, name, rdata+4, namelen, IVAL(rdata, 0),
+		    STR_UNICODE);
 
 	SAFE_FREE(rparam);
 	SAFE_FREE(rdata);
@@ -1232,7 +1233,8 @@ NTSTATUS cli_qpathinfo_alt_name(struct cli_state *cli, const char *fname, fstrin
 		return NT_STATUS_INVALID_NETWORK_RESPONSE;
 	}
 
-	clistr_pull(cli, alt_name, rdata+4, sizeof(fstring), len, STR_UNICODE);
+	clistr_pull(cli->inbuf, alt_name, rdata+4, sizeof(fstring), len,
+		    STR_UNICODE);
 
 	SAFE_FREE(rdata);
 	SAFE_FREE(rparam);
diff --git a/source3/libsmb/clistr.c b/source3/libsmb/clistr.c
index 5d20d63..8685781 100644
--- a/source3/libsmb/clistr.c
+++ b/source3/libsmb/clistr.c
@@ -51,22 +51,22 @@ size_t clistr_push_fn(const char *function,
 
 size_t clistr_pull_fn(const char *function,
 			unsigned int line,
-			struct cli_state *cli,
+			const char *inbuf,
 			char *dest,
 			const void *src,
 			int dest_len,
 			int src_len,
 			int flags)
 {
-	return pull_string_fn(function, line, cli->inbuf,
-			      SVAL(cli->inbuf, smb_flg2), dest, src, dest_len,
+	return pull_string_fn(function, line, inbuf,
+			      SVAL(inbuf, smb_flg2), dest, src, dest_len,
 			      src_len, flags);
 }
 
 size_t clistr_pull_talloc_fn(const char *function,
 				unsigned int line,
 				TALLOC_CTX *ctx,
-				struct cli_state *cli,
+				const char *inbuf,
 				char **pp_dest,
 				const void *src,
 				int src_len,
@@ -75,8 +75,8 @@ size_t clistr_pull_talloc_fn(const char *function,
 	return pull_string_talloc_fn(function,
 					line,
 					ctx,
-					cli->inbuf,
-					SVAL(cli->inbuf, smb_flg2),
+					inbuf,
+					SVAL(inbuf, smb_flg2),
 					pp_dest,
 					src,
 					src_len,


-- 
Samba Shared Repository


More information about the samba-cvs mailing list