[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-unstable-462-gb676262

Jeremy Allison jra at samba.org
Wed Dec 5 00:56:57 GMT 2007


The branch, v3-2-test has been updated
       via  b676262a781363e7be49b21817668a53cca75c2d (commit)
      from  c1f70793d615df57dc7b766d67db3e9eedd0e25e (commit)

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


- Log -----------------------------------------------------------------
commit b676262a781363e7be49b21817668a53cca75c2d
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Dec 4 16:56:18 2007 -0800

    The usual !pstring...
    Jeremy.

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

Summary of changes:
 source/torture/locktest.c  |   10 +++--
 source/torture/locktest2.c |   13 +++++--
 source/torture/vfstest.c   |   80 ++++++++++++++++++++------------------------
 source/utils/eventlogadm.c |    2 +-
 source/utils/net_ads.c     |   13 +++++--
 5 files changed, 61 insertions(+), 57 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/torture/locktest.c b/source/torture/locktest.c
index baf676f..4dc8e53 100644
--- a/source/torture/locktest.c
+++ b/source/torture/locktest.c
@@ -125,13 +125,15 @@ static void print_brl(struct file_id id,
 {
 #if NASTY_POSIX_LOCK_HACK
 	{
-		pstring cmd;
 		static SMB_INO_T lastino;
 
 		if (lastino != ino) {
-			slprintf(cmd, sizeof(cmd), 
-				 "egrep POSIX.*%u /proc/locks", (int)ino);
-			system(cmd);
+			char *cmd;
+			if (asprintf(&cmd,
+				 "egrep POSIX.*%u /proc/locks", (int)ino) > 0) {
+				system(cmd);
+				SAFE_FREE(cmd);
+			}
 		}
 		lastino = ino;
 	}
diff --git a/source/torture/locktest2.c b/source/torture/locktest2.c
index bdf9e51..45a957e 100644
--- a/source/torture/locktest2.c
+++ b/source/torture/locktest2.c
@@ -64,16 +64,21 @@ static struct record *recorded;
 
 static int try_open(struct cli_state *c, char *nfs, int fstype, const char *fname, int flags)
 {
-	pstring path;
+	char *path;
 
 	switch (fstype) {
 	case FSTYPE_SMB:
 		return cli_open(c, fname, flags, DENY_NONE);
 
 	case FSTYPE_NFS:
-		slprintf(path, sizeof(path), "%s%s", nfs, fname);
-		pstring_sub(path,"\\", "/");
-		return open(path, flags, 0666);
+		if (asprintf(&path, "%s%s", nfs, fname) > 0) {
+			int ret;
+			string_replace(path,'\\', '/');
+			ret = open(path, flags, 0666);
+			SAFE_FREE(path);
+			return ret;
+		}
+		break;
 	}
 
 	return -1;
diff --git a/source/torture/vfstest.c b/source/torture/vfstest.c
index daecf3c..5f673be 100644
--- a/source/torture/vfstest.c
+++ b/source/torture/vfstest.c
@@ -89,20 +89,20 @@ static char **completion_fn(const char *text, int start, int end)
 	return matches;
 }
 
-static char* next_command(char** cmdstr)
+static char *next_command(TALLOC_CTX *ctx, char **cmdstr)
 {
-	static pstring 		command;
-	char			*p;
-	
+	char *command;
+	char *p;
+
 	if (!cmdstr || !(*cmdstr))
 		return NULL;
-	
+
 	p = strchr_m(*cmdstr, ';');
 	if (p)
 		*p = '\0';
-	pstrcpy(command, *cmdstr);
+	command = talloc_strdup(ctx, *cmdstr);
 	*cmdstr = p;
-	
+
 	return command;
 }
 
@@ -266,24 +266,22 @@ static NTSTATUS do_cmd(struct vfs_state *vfs, struct cmd_set *cmd_entry, char *c
 	const char *p = cmd;
 	char **argv = NULL;
 	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
-	pstring buf;
-	TALLOC_CTX *mem_ctx = NULL;
+	char *buf;
+	TALLOC_CTX *mem_ctx = talloc_stackframe();
 	int argc = 0, i;
 
 	/* Count number of arguments first time through the loop then
 	   allocate memory and strdup them. */
 
  again:
-	while(next_token(&p, buf, " ", sizeof(buf))) {
+	while(next_token_talloc(mem_ctx, &p, &buf, " ")) {
 		if (argv) {
 			argv[argc] = SMB_STRDUP(buf);
 		}
-		
 		argc++;
 	}
-				
-	if (!argv) {
 
+	if (!argv) {
 		/* Create argument list */
 
 		argv = SMB_MALLOC_ARRAY(char *, argc);
@@ -294,44 +292,35 @@ static NTSTATUS do_cmd(struct vfs_state *vfs, struct cmd_set *cmd_entry, char *c
 			result = NT_STATUS_NO_MEMORY;
 			goto done;
 		}
-					
+
 		p = cmd;
 		argc = 0;
-					
+
 		goto again;
 	}
 
 	/* Call the function */
 
 	if (cmd_entry->fn) {
-
-		if (mem_ctx == NULL) {
-			/* Create mem_ctx */
-			if (!(mem_ctx = talloc_init("do_cmd"))) {
-		       		DEBUG(0, ("talloc_init() failed\n"));
-				goto done;
-			}
-		}
-
 		/* Run command */
 		result = cmd_entry->fn(vfs, mem_ctx, argc, (const char **)argv);
-
 	} else {
 		fprintf (stderr, "Invalid command\n");
 		goto done;
 	}
 
  done:
-						
+
 	/* Cleanup */
 
 	if (argv) {
 		for (i = 0; i < argc; i++)
 			SAFE_FREE(argv[i]);
-	
+
 		SAFE_FREE(argv);
 	}
-	
+
+	TALLOC_FREE(mem_ctx);
 	return result;
 }
 
@@ -340,19 +329,21 @@ static NTSTATUS process_cmd(struct vfs_state *vfs, char *cmd)
 {
 	struct cmd_list *temp_list;
 	bool found = False;
-	pstring buf;
+	char *buf;
 	const char *p = cmd;
 	NTSTATUS result = NT_STATUS_OK;
+	TALLOC_CTX *mem_ctx = talloc_stackframe();
 	int len = 0;
 
 	if (cmd[strlen(cmd) - 1] == '\n')
 		cmd[strlen(cmd) - 1] = '\0';
 
-	if (!next_token(&p, buf, " ", sizeof(buf))) {
+	if (!next_token_talloc(mem_ctx, &p, &buf, " ")) {
+		TALLOC_FREE(mem_ctx);
 		return NT_STATUS_OK;
 	}
 
-	/* strip the trainly \n if it exsists */
+	/* Strip the trailing \n if it exists */
 	len = strlen(buf);
 	if (buf[len-1] == '\n')
 		buf[len-1] = '\0';
@@ -376,6 +367,7 @@ static NTSTATUS process_cmd(struct vfs_state *vfs, char *cmd)
  done:
 	if (!found && buf[0]) {
 		printf("command not found: %s\n", buf);
+		TALLOC_FREE(mem_ctx);
 		return NT_STATUS_OK;
 	}
 
@@ -383,6 +375,7 @@ static NTSTATUS process_cmd(struct vfs_state *vfs, char *cmd)
 		printf("result was %s\n", nt_errstr(result));
 	}
 
+	TALLOC_FREE(mem_ctx);
 	return result;
 }
 
@@ -437,13 +430,12 @@ void reload_printers(void)
 bool reload_services(bool test)
 {
 	bool ret;
-	
+
 	if (lp_loaded()) {
-		pstring fname;
-		pstrcpy(fname,lp_configfile());
+		const char *fname = lp_configfile();
 		if (file_exist(fname, NULL) &&
 		    !strcsequal(fname, dyn_CONFIGFILE)) {
-			pstrcpy(dyn_CONFIGFILE, fname);
+			strlcpy(dyn_CONFIGFILE, fname, sizeof(dyn_CONFIGFILE));
 			test = False;
 		}
 	}
@@ -454,7 +446,7 @@ bool reload_services(bool test)
 		return(True);
 
 	lp_killunused(conn_snum_used);
-	
+
 	ret = lp_load(dyn_CONFIGFILE, False, False, True, True);
 
 	/* perhaps the config filename is now set */
@@ -512,6 +504,7 @@ int main(int argc, char *argv[])
 	static struct vfs_state vfs;
 	int i;
 	static char		*filename = NULL;
+	TALLOC_CTX *frame = talloc_stackframe();
 
 	/* make sure the vars that get altered (4th field) are in
 	   a fixed location or certain compilers complain */
@@ -574,23 +567,21 @@ int main(int argc, char *argv[])
 	if (cmdstr && cmdstr[0]) {
 		char    *cmd;
 		char    *p = cmdstr;
- 
-		while((cmd=next_command(&p)) != NULL) {
+
+		while((cmd=next_command(frame, &p)) != NULL) {
 			process_cmd(&vfs, cmd);
 		}
-		
+
+		TALLOC_FREE(cmd);
 		return 0;
 	}
 
 	/* Loop around accepting commands */
 
 	while(1) {
-		pstring prompt;
 		char *line;
 
-		slprintf(prompt, sizeof(prompt) - 1, "vfstest $> ");
-
-		line = smb_readline(prompt, NULL, completion_fn);
+		line = smb_readline("vfstest $> ", NULL, completion_fn);
 
 		if (line == NULL)
 			break;
@@ -598,7 +589,8 @@ int main(int argc, char *argv[])
 		if (line[0] != '\n')
 			process_cmd(&vfs, line);
 	}
-	
+
 	conn_free(vfs.conn);
+	TALLOC_FREE(frame);
 	return 0;
 }
diff --git a/source/utils/eventlogadm.c b/source/utils/eventlogadm.c
index 5424eca..424cee8 100644
--- a/source/utils/eventlogadm.c
+++ b/source/utils/eventlogadm.c
@@ -85,7 +85,7 @@ static int DoWriteCommand( int argc, char **argv, bool debugflag, char *exename
 	ELOG_TDB *etdb;
 
 	/* fixed constants are bad bad bad  */
-	pstring linein;
+	char linein[1024];
 	bool is_eor;
 	Eventlog_entry ee;
 	int rcnum;
diff --git a/source/utils/net_ads.c b/source/utils/net_ads.c
index d54b817..37a0220 100644
--- a/source/utils/net_ads.c
+++ b/source/utils/net_ads.c
@@ -1636,12 +1636,17 @@ int net_ads_join(int argc, const char **argv)
 	}
 
 	if ( createupn ) {
-		pstring upn;
+		char *upn;
 
 		/* default to using the short UPN name */
-		if ( !machineupn ) {
-			snprintf( upn, sizeof(upn), "host/%s@%s", global_myname(), 
-				ads->config.realm );
+		if (!machineupn ) {
+			upn = talloc_asprintf(ctx,
+					"host/%s@%s", global_myname(),
+					ads->config.realm );
+			if (!upn) {
+				nt_status = NT_STATUS_NO_MEMORY;
+				goto fail;
+			}
 			machineupn = upn;
 		}
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list