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 <[EMAIL PROTECTED]>
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/[EMAIL PROTECTED]", 
global_myname(), 
-                               ads->config.realm );
+               if (!machineupn ) {
+                       upn = talloc_asprintf(ctx,
+                                       "host/[EMAIL PROTECTED]", 
global_myname(),
+                                       ads->config.realm );
+                       if (!upn) {
+                               nt_status = NT_STATUS_NO_MEMORY;
+                               goto fail;
+                       }
                        machineupn = upn;
                }
 


-- 
Samba Shared Repository

Reply via email to