From 737f4583ca8db452d9ef294527c48487a55db915 Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 25 Apr 2025 16:06:08 +0200 Subject: [PATCH] libsmb: Save a few lines of ZERO_STRUCTP with SMB_CALLOC_ARRAY Signed-off-by: Volker Lendecke Reviewed-by: Stefan Metzmacher --- source3/libsmb/libsmb_context.c | 9 ++------- source3/libsmb/libsmb_dir.c | 19 +++++-------------- source3/libsmb/libsmb_file.c | 4 +--- source3/libsmb/libsmb_server.c | 7 ++----- 4 files changed, 10 insertions(+), 29 deletions(-) diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c index 97a4430fd6a..1f4e4e6c7b1 100644 --- a/source3/libsmb/libsmb_context.c +++ b/source3/libsmb/libsmb_context.c @@ -149,16 +149,14 @@ smbc_new_context(void) * All newly added context fields should be placed in * SMBC_internal_data, not directly in SMBCCTX. */ - context = SMB_MALLOC_P(SMBCCTX); + context = SMB_CALLOC_ARRAY(SMBCCTX, 1); if (!context) { TALLOC_FREE(frame); errno = ENOMEM; return NULL; } - ZERO_STRUCTP(context); - - context->internal = SMB_MALLOC_P(struct SMBC_internal_data); + context->internal = SMB_CALLOC_ARRAY(struct SMBC_internal_data, 1); if (!context->internal) { TALLOC_FREE(frame); SAFE_FREE(context); @@ -166,9 +164,6 @@ smbc_new_context(void) return NULL; } - /* Initialize the context and establish reasonable defaults */ - ZERO_STRUCTP(context->internal); - context->internal->lp_ctx = loadparm_init_s3(NULL, loadparm_s3_helpers()); if (context->internal->lp_ctx == NULL) { diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c index 1bcf5f1b475..76733066ecf 100644 --- a/source3/libsmb/libsmb_dir.c +++ b/source3/libsmb/libsmb_dir.c @@ -111,30 +111,26 @@ add_dirent(SMBCFILE *dir, if (dir->dir_list == NULL) { - dir->dir_list = SMB_MALLOC_P(struct smbc_dir_list); + dir->dir_list = SMB_CALLOC_ARRAY(struct smbc_dir_list, 1); if (!dir->dir_list) { SAFE_FREE(dirent); dir->dir_error = ENOMEM; return -1; - } - ZERO_STRUCTP(dir->dir_list); dir->dir_end = dir->dir_next = dir->dir_list; } else { - dir->dir_end->next = SMB_MALLOC_P(struct smbc_dir_list); + dir->dir_end->next = SMB_CALLOC_ARRAY(struct smbc_dir_list, 1); if (!dir->dir_end->next) { SAFE_FREE(dirent); dir->dir_error = ENOMEM; return -1; - } - ZERO_STRUCTP(dir->dir_end->next); dir->dir_end = dir->dir_end->next; } @@ -165,23 +161,20 @@ static int add_dirplus(SMBCFILE *dir, struct file_info *finfo) struct smbc_dirplus_list *new_entry = NULL; struct libsmb_file_info *info = NULL; - new_entry = SMB_MALLOC_P(struct smbc_dirplus_list); + new_entry = SMB_CALLOC_ARRAY(struct smbc_dirplus_list, 1); if (new_entry == NULL) { dir->dir_error = ENOMEM; return -1; } - ZERO_STRUCTP(new_entry); new_entry->ino = finfo->ino; - info = SMB_MALLOC_P(struct libsmb_file_info); + info = SMB_CALLOC_ARRAY(struct libsmb_file_info, 1); if (info == NULL) { SAFE_FREE(new_entry); dir->dir_error = ENOMEM; return -1; } - ZERO_STRUCTP(info); - info->btime_ts = finfo->btime_ts; info->atime_ts = finfo->atime_ts; info->ctime_ts = finfo->ctime_ts; @@ -531,7 +524,7 @@ SMBC_opendir_ctx(SMBCCTX *context, } } - dir = SMB_MALLOC_P(SMBCFILE); + dir = SMB_CALLOC_ARRAY(SMBCFILE, 1); if (!dir) { TALLOC_FREE(frame); @@ -539,8 +532,6 @@ SMBC_opendir_ctx(SMBCCTX *context, return NULL; } - ZERO_STRUCTP(dir); - dir->cli_fd = 0; dir->fname = SMB_STRDUP(fname); if (dir->fname == NULL) { diff --git a/source3/libsmb/libsmb_file.c b/source3/libsmb/libsmb_file.c index 20d61cf39df..86767a4cf5b 100644 --- a/source3/libsmb/libsmb_file.c +++ b/source3/libsmb/libsmb_file.c @@ -110,15 +110,13 @@ SMBC_open_ctx(SMBCCTX *context, return file; } - file = SMB_MALLOC_P(SMBCFILE); + file = SMB_CALLOC_ARRAY(SMBCFILE, 1); if (!file) { errno = ENOMEM; TALLOC_FREE(frame); return NULL; } - ZERO_STRUCTP(file); - creds = context->internal->creds; /*d_printf(">>>open: resolving %s\n", path);*/ status = cli_resolve_path( diff --git a/source3/libsmb/libsmb_server.c b/source3/libsmb/libsmb_server.c index 9a115caaf37..39541795a1f 100644 --- a/source3/libsmb/libsmb_server.c +++ b/source3/libsmb/libsmb_server.c @@ -712,14 +712,13 @@ SMBC_server_internal(TALLOC_CTX *ctx, * Let's allocate a server structure. */ - srv = SMB_MALLOC_P(SMBCSRV); + srv = SMB_CALLOC_ARRAY(SMBCSRV, 1); if (!srv) { cli_shutdown(c); errno = ENOMEM; return NULL; } - ZERO_STRUCTP(srv); DLIST_ADD(srv->cli, c); srv->dev = (dev_t)(str_checksum(server) ^ str_checksum(share)); srv->no_pathinfo = False; @@ -890,14 +889,12 @@ SMBC_attr_server(TALLOC_CTX *ctx, } talloc_steal(ipc_cli, creds); - ipc_srv = SMB_MALLOC_P(SMBCSRV); + ipc_srv = SMB_CALLOC_ARRAY(SMBCSRV, 1); if (!ipc_srv) { errno = ENOMEM; cli_shutdown(ipc_cli); return NULL; } - - ZERO_STRUCTP(ipc_srv); DLIST_ADD(ipc_srv->cli, ipc_cli); nt_status = cli_rpc_pipe_open_noauth( -- 2.47.3