]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libsmb: Save a few lines of ZERO_STRUCTP with SMB_CALLOC_ARRAY
authorVolker Lendecke <vl@samba.org>
Fri, 25 Apr 2025 14:06:08 +0000 (16:06 +0200)
committerVolker Lendecke <vl@samba.org>
Thu, 15 May 2025 14:03:34 +0000 (14:03 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
source3/libsmb/libsmb_context.c
source3/libsmb/libsmb_dir.c
source3/libsmb/libsmb_file.c
source3/libsmb/libsmb_server.c

index 97a4430fd6a01069f836230e82cd9ed269a0ada5..1f4e4e6c7b13f6712254f79037b86b78c8366172 100644 (file)
@@ -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) {
index 1bcf5f1b4753b5aae2830942bc4a827624329982..76733066ecf04b8dd4125669088a68062aca747a 100644 (file)
@@ -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) {
index 20d61cf39dfaadb60d663e98f33738a7acedb724..86767a4cf5b6c07ee52587e2c1c822c0f684f13b 100644 (file)
@@ -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(
index 9a115caaf37a0a8265ec2bcd9648acede75b943a..39541795a1f97ee0cfd26f5e9ca5ec26746b6169 100644 (file)
@@ -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(