s3-torture: Use talloc more in vfstest
authorAndrew Bartlett <abartlet@samba.org>
Thu, 16 Aug 2012 05:16:01 +0000 (15:16 +1000)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 16 Aug 2012 05:25:40 +0000 (15:25 +1000)
This matches the rest of Samba, which allocates many of these structures with talloc.

Andrew Bartlett

source3/torture/cmd_vfs.c
source3/torture/vfstest.c

index 268e5c113564cb35d6310d4dff975726e9aa92b2..f92efb9778fdf343453a8fe80f70f121a3bb1981 100644 (file)
@@ -318,14 +318,13 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
                }
        }
 
-       fsp = SMB_MALLOC_P(struct files_struct);
+       fsp = talloc_zero(vfs, struct files_struct);
        if (fsp == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
-       fsp->fh = SMB_MALLOC_P(struct fd_handle);
+       fsp->fh = talloc_zero(fsp, struct fd_handle);
        if (fsp->fh == NULL) {
-               SAFE_FREE(fsp->fsp_name);
-               SAFE_FREE(fsp);
+               TALLOC_FREE(fsp);
                return NT_STATUS_NO_MEMORY;
        }
        fsp->conn = vfs->conn;
@@ -333,7 +332,7 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
        status = create_synthetic_smb_fname_split(NULL, argv[1], NULL,
                                                  &smb_fname);
        if (!NT_STATUS_IS_OK(status)) {
-               SAFE_FREE(fsp);
+               TALLOC_FREE(fsp);
                return status;
        }
 
@@ -342,8 +341,7 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
        fsp->fh->fd = SMB_VFS_OPEN(vfs->conn, smb_fname, fsp, flags, mode);
        if (fsp->fh->fd == -1) {
                printf("open: error=%d (%s)\n", errno, strerror(errno));
-               SAFE_FREE(fsp->fh);
-               SAFE_FREE(fsp);
+               TALLOC_FREE(fsp);
                TALLOC_FREE(smb_fname);
                return NT_STATUS_UNSUCCESSFUL;
        }
@@ -363,8 +361,7 @@ static NTSTATUS cmd_open(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc, c
        
        if (!NT_STATUS_IS_OK(status)) {
                SMB_VFS_CLOSE(fsp);
-               SAFE_FREE(fsp->fh);
-               SAFE_FREE(fsp);
+               TALLOC_FREE(fsp);
                TALLOC_FREE(smb_fname);
                return status;
        }
@@ -448,9 +445,7 @@ static NTSTATUS cmd_close(struct vfs_state *vfs, TALLOC_CTX *mem_ctx, int argc,
        else
                printf("close: ok\n");
 
-       TALLOC_FREE(vfs->files[fd]->fsp_name);
-       SAFE_FREE(vfs->files[fd]->fh);
-       SAFE_FREE(vfs->files[fd]);
+       TALLOC_FREE(vfs->files[fd]);
        vfs->files[fd] = NULL;
        return NT_STATUS_OK;
 }
index 40e78e87f25fee23dd097596f778c49b22ae4430..3b474597e9d2f64fc87eb906ded3c26ef6dbc945 100644 (file)
@@ -446,7 +446,7 @@ int main(int argc, char *argv[])
 {
        char *cmdstr = NULL;
        struct cmd_set  **cmd_set;
-       struct vfs_state vfs = { 0, };
+       struct vfs_state *vfs;
        int i;
        char *filename = NULL;
        char cwd[MAXPATHLEN];
@@ -501,21 +501,22 @@ int main(int argc, char *argv[])
        init_guest_info();
        locking_init();
        serverid_parent_init(NULL);
-       vfs.conn = talloc_zero(NULL, connection_struct);
-       vfs.conn->share_access = FILE_GENERIC_ALL;
-       vfs.conn->params = talloc_zero(vfs.conn, struct share_params);
-       vfs.conn->sconn = talloc_zero(NULL, struct smbd_server_connection);
-       vfs.conn->sconn->msg_ctx = messaging_init(vfs.conn->sconn, ev);
-       vfs.conn->sconn->ev_ctx = ev;
-       serverid_register(messaging_server_id(vfs.conn->sconn->msg_ctx), 0);
-       make_session_info_guest(NULL, &vfs.conn->session_info);
-       file_init(vfs.conn->sconn);
-       set_conn_connectpath(vfs.conn, getcwd(cwd, sizeof(cwd)));
+       vfs = talloc_zero(NULL, struct vfs_state);
+       vfs->conn = talloc_zero(vfs, connection_struct);
+       vfs->conn->share_access = FILE_GENERIC_ALL;
+       vfs->conn->params = talloc_zero(vfs->conn, struct share_params);
+       vfs->conn->sconn = talloc_zero(NULL, struct smbd_server_connection);
+       vfs->conn->sconn->msg_ctx = messaging_init(vfs->conn->sconn, ev);
+       vfs->conn->sconn->ev_ctx = ev;
+       serverid_register(messaging_server_id(vfs->conn->sconn->msg_ctx), 0);
+       make_session_info_guest(NULL, &vfs->conn->session_info);
+       file_init(vfs->conn->sconn);
+       set_conn_connectpath(vfs->conn, getcwd(cwd, sizeof(cwd)));
        for (i=0; i < 1024; i++)
-               vfs.files[i] = NULL;
+               vfs->files[i] = NULL;
 
        /* some advanced initialization stuff */
-       smbd_vfs_init(vfs.conn);
+       smbd_vfs_init(vfs->conn);
 
        if (!posix_locking_init(false)) {
                return 1;
@@ -523,7 +524,7 @@ int main(int argc, char *argv[])
 
        /* Do we have a file input? */
        if (filename && filename[0]) {
-               process_file(&vfs, filename);
+               process_file(vfs, filename);
                return 0;
        }
 
@@ -533,7 +534,7 @@ int main(int argc, char *argv[])
                char    *p = cmdstr;
 
                while((cmd=next_command(frame, &p)) != NULL) {
-                       status = process_cmd(&vfs, cmd);
+                       status = process_cmd(vfs, cmd);
                }
 
                TALLOC_FREE(cmd);
@@ -552,12 +553,12 @@ int main(int argc, char *argv[])
                }
 
                if (line[0] != '\n') {
-                       status = process_cmd(&vfs, line);
+                       status = process_cmd(vfs, line);
                }
                SAFE_FREE(line);
        }
 
-       TALLOC_FREE(vfs.conn);
+       TALLOC_FREE(vfs);
        TALLOC_FREE(frame);
        return NT_STATUS_IS_OK(status) ? 0 : 1;
 }