diff options
author | Andrew Bartlett <abartlet@samba.org> | 2012-08-16 15:16:01 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2012-08-16 15:25:40 +1000 |
commit | 345b980c3e55645009150ef9a7ab35245e8e55db (patch) | |
tree | b7af7e24b93b86a3d0fafbf49a65279161885ff9 | |
parent | 43255a1d18b714ab108b21f5a1065a82e44e3490 (diff) | |
download | samba-345b980c3e55645009150ef9a7ab35245e8e55db.tar.gz samba-345b980c3e55645009150ef9a7ab35245e8e55db.tar.bz2 samba-345b980c3e55645009150ef9a7ab35245e8e55db.zip |
s3-torture: Use talloc more in vfstest
This matches the rest of Samba, which allocates many of these structures with talloc.
Andrew Bartlett
-rw-r--r-- | source3/torture/cmd_vfs.c | 19 | ||||
-rw-r--r-- | source3/torture/vfstest.c | 35 |
2 files changed, 25 insertions, 29 deletions
diff --git a/source3/torture/cmd_vfs.c b/source3/torture/cmd_vfs.c index 268e5c1135..f92efb9778 100644 --- a/source3/torture/cmd_vfs.c +++ b/source3/torture/cmd_vfs.c @@ -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; } diff --git a/source3/torture/vfstest.c b/source3/torture/vfstest.c index 40e78e87f2..3b474597e9 100644 --- a/source3/torture/vfstest.c +++ b/source3/torture/vfstest.c @@ -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; } |