* 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);
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) {
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;
}
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;
}
}
- dir = SMB_MALLOC_P(SMBCFILE);
+ dir = SMB_CALLOC_ARRAY(SMBCFILE, 1);
if (!dir) {
TALLOC_FREE(frame);
return NULL;
}
- ZERO_STRUCTP(dir);
-
dir->cli_fd = 0;
dir->fname = SMB_STRDUP(fname);
if (dir->fname == NULL) {
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(
* 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;
}
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(