diff --git a/src/auth/auth-request-var-expand.c b/src/auth/auth-request-var-expand.c index 184f221a4e..bbaf4dcb79 100644 --- a/src/auth/auth-request-var-expand.c +++ b/src/auth/auth-request-var-expand.c @@ -246,7 +246,7 @@ void auth_request_var_expand_with_table(string_t *dest, const char *str, { struct auth_request_var_expand_ctx ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.auth_request = auth_request; ctx.escape_func = escape_func == NULL ? escape_none : escape_func; var_expand_with_funcs(dest, str, table, diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c index ea5958b44d..eea95f8725 100644 --- a/src/auth/auth-request.c +++ b/src/auth/auth-request.c @@ -2106,7 +2106,7 @@ static int auth_request_proxy_host_lookup(struct auth_request *request, unsigned int secs; /* need to do dns lookup for the host */ - memset(&dns_set, 0, sizeof(dns_set)); + i_zero(&dns_set); dns_set.dns_client_socket_path = AUTH_DNS_SOCKET_PATH; dns_set.timeout_msecs = AUTH_DNS_DEFAULT_TIMEOUT_MSECS; value = auth_fields_find(request->extra_fields, "proxy_timeout"); diff --git a/src/auth/auth-settings.c b/src/auth/auth-settings.c index dc34c008dd..9e43e68204 100644 --- a/src/auth/auth-settings.c +++ b/src/auth/auth-settings.c @@ -513,7 +513,7 @@ auth_settings_read(const char *service, pool_t pool, const char *error; void **sets; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "auth"; input.service = service; diff --git a/src/auth/db-dict.c b/src/auth/db-dict.c index 138ac0dc33..b56942e2ed 100644 --- a/src/auth/db-dict.c +++ b/src/auth/db-dict.c @@ -297,7 +297,7 @@ struct dict_connection *db_dict_init(const char *config_path) p_array_init(&conn->set.parsed_passdb_objects, pool, 2); p_array_init(&conn->set.parsed_userdb_objects, pool, 2); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.conn = conn; if (!settings_read(config_path, NULL, parse_setting, parse_section, &ctx, &error)) diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index 06a86525ab..aabd1508d2 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -629,7 +629,7 @@ ldap_request_send_subquery(struct ldap_connection *conn, struct ldap_field_find_subquery_context ctx; string_t *tmp_str = t_str_new(64); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); t_array_init(&ctx.attr_names, 8); ctx.name = named_res->field->name; @@ -904,7 +904,7 @@ static void ldap_input(struct ldap_connection *conn) if (conn->ld == NULL) return; - memset(&timeout, 0, sizeof(timeout)); + i_zero(&timeout); ret = ldap_result(conn->ld, LDAP_RES_ANY, 0, &timeout, &msg); #ifdef OPENLDAP_ASYNC_WORKAROUND if (ret == 0) { @@ -999,7 +999,7 @@ static int db_ldap_bind_sasl(struct ldap_connection *conn) struct db_ldap_sasl_bind_context context; int ret; - memset(&context, 0, sizeof(context)); + i_zero(&context); context.authcid = conn->set.dn; context.passwd = conn->set.dnpass; context.realm = conn->set.sasl_realm; @@ -1211,7 +1211,7 @@ int db_ldap_connect(struct ldap_connection *conn) if (debug) { if (gettimeofday(&start, NULL) < 0) - memset(&start, 0, sizeof(start)); + i_zero(&start); } i_assert(conn->pending_count == 0); diff --git a/src/auth/main.c b/src/auth/main.c index acfc535a8b..39f602653b 100644 --- a/src/auth/main.c +++ b/src/auth/main.c @@ -189,7 +189,7 @@ static void main_preinit(void) services = read_global_settings(); - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; mod_set.debug = global_auth_settings->debug; @@ -220,7 +220,7 @@ void auth_module_load(const char *names) { struct module_dir_load_settings mod_set; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; mod_set.debug = global_auth_settings->debug; diff --git a/src/auth/passdb-pam.c b/src/auth/passdb-pam.c index f00eb50d87..c4dc36d77c 100644 --- a/src/auth/passdb-pam.c +++ b/src/auth/passdb-pam.c @@ -261,7 +261,7 @@ pam_verify_plain_call(struct auth_request *request, const char *service, conv.conv = pam_userpass_conv; conv.appdata_ptr = &ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.request = request; ctx.pass = password; diff --git a/src/config/config-connection.c b/src/config/config-connection.c index 14aec5d9fa..86c5bacc29 100644 --- a/src/config/config-connection.c +++ b/src/config/config-connection.c @@ -75,7 +75,7 @@ static int config_connection_request(struct config_connection *conn, /* [] */ t_array_init(&modules, 4); - memset(&filter, 0, sizeof(filter)); + i_zero(&filter); for (; *args != NULL; args++) { if (strncmp(*args, "service=", 8) == 0) filter.service = *args + 8; diff --git a/src/config/config-filter.c b/src/config/config-filter.c index 9f4d525e89..c0c0aa1a71 100644 --- a/src/config/config-filter.c +++ b/src/config/config-filter.c @@ -215,7 +215,7 @@ config_filter_find_all(struct config_filter_context *ctx, pool_t pool, ARRAY_TYPE(const_string) service_names; unsigned int i; - memset(output_r, 0, sizeof(*output_r)); + i_zero(output_r); p_array_init(&matches, pool, 8); p_array_init(&service_names, pool, 8); diff --git a/src/config/config-parser.c b/src/config/config-parser.c index 47dc365e2f..5644a16ac0 100644 --- a/src/config/config-parser.c +++ b/src/config/config-parser.c @@ -967,7 +967,7 @@ int config_parse_file(const char *path, bool expand_values, } } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool_alloconly_create(MEMPOOL_GROWING"config file parser", 1024*256); ctx.path = path; ctx.hide_errors = fd == -1; @@ -982,7 +982,7 @@ int config_parse_file(const char *path, bool expand_values, settings_parser_flags); } - memset(&root, 0, sizeof(root)); + i_zero(&root); root.path = path; ctx.cur_input = &root; ctx.expand_values = expand_values; @@ -1052,7 +1052,7 @@ void config_parse_load_modules(void) struct service_settings *const *services, *service_set; unsigned int i, count; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; modules = module_dir_load(CONFIG_MODULE_DIR, NULL, &mod_set); module_dir_init(modules); diff --git a/src/config/doveconf.c b/src/config/doveconf.c index 3a201856d5..1ade5d96f1 100644 --- a/src/config/doveconf.c +++ b/src/config/doveconf.c @@ -608,7 +608,7 @@ static void hostname_verify_format(const char *arg) const char *host2; bool duplicates = FALSE; - memset(&fmt, 0, sizeof(fmt)); + i_zero(&fmt); if (arg != NULL) { /* host%d, host%2d, host%02d */ p = strchr(arg, '%'); @@ -723,7 +723,7 @@ int main(int argc, char *argv[]) i_set_failure_exit_callback(failure_exit_callback); } - memset(&filter, 0, sizeof(filter)); + i_zero(&filter); master_service = master_service_init("config", MASTER_SERVICE_FLAG_STANDALONE, &argc, &argv, "adf:hHm:nNpPexS"); diff --git a/src/config/old-set-parser.c b/src/config/old-set-parser.c index 3077016cd1..3f64647e21 100644 --- a/src/config/old-set-parser.c +++ b/src/config/old-set-parser.c @@ -475,7 +475,7 @@ static bool old_auth_section(struct config_parser_context *ctx, return FALSE; } ctx->old->seen_auth_section = TRUE; - memset(&ctx->old->socket_set, 0, sizeof(ctx->old->socket_set)); + i_zero(&ctx->old->socket_set); ctx->old->auth_section++; if ((strcmp(key, "passdb") == 0 || strcmp(key, "userdb") == 0) && @@ -570,7 +570,7 @@ static void socket_apply(struct config_parser_context *ctx) config_apply_line(ctx, "group", t_strdup_printf("%s/group=%s", prefix, set->group), NULL); } - memset(&ctx->old->socket_set, 0, sizeof(ctx->old->socket_set)); + i_zero(&ctx->old->socket_set); } bool old_settings_handle(struct config_parser_context *ctx, diff --git a/src/dict/main.c b/src/dict/main.c index f1d89fe27f..ec4d3c6a9f 100644 --- a/src/dict/main.c +++ b/src/dict/main.c @@ -106,7 +106,7 @@ static void main_init(void) NULL)); } - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; diff --git a/src/director/login-connection.c b/src/director/login-connection.c index f2ef863d51..dbab889f7b 100644 --- a/src/director/login-connection.c +++ b/src/director/login-connection.c @@ -206,7 +206,7 @@ static void auth_input_line(const char *line, void *context) args++; } - memset(&temp_request, 0, sizeof(temp_request)); + i_zero(&temp_request); for (; *args != NULL; args++) { if (strncmp(*args, "proxy", 5) == 0 && ((*args)[5] == '=' || (*args)[5] == '\0')) diff --git a/src/doveadm/client-connection-http.c b/src/doveadm/client-connection-http.c index 704d86b7da..c647644ab2 100644 --- a/src/doveadm/client-connection-http.c +++ b/src/doveadm/client-connection-http.c @@ -328,7 +328,7 @@ doveadm_http_server_command_execute(struct client_connection_http *conn) struct istream *is; const char *user; struct ioloop *ioloop,*prev_ioloop = current_ioloop; - memset(&cctx, 0, sizeof(cctx)); + i_zero(&cctx); // create iostream doveadm_print_ostream = iostream_temp_create("/tmp/doveadm.", 0); diff --git a/src/doveadm/client-connection.c b/src/doveadm/client-connection.c index 58c4f5558f..74a38f28cb 100644 --- a/src/doveadm/client-connection.c +++ b/src/doveadm/client-connection.c @@ -289,7 +289,7 @@ static bool client_handle_command(struct client_connection *conn, char **args) i_error("doveadm client: No command given"); return FALSE; } - memset(&cctx, 0, sizeof(cctx)); + i_zero(&cctx); cctx.cli = FALSE; cctx.tcp_server = TRUE; @@ -463,7 +463,7 @@ static int client_connection_read_settings(struct client_connection *conn) const char *error; void *set; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.service = "doveadm"; input.local_ip = conn->local_ip; diff --git a/src/doveadm/doveadm-auth-server.c b/src/doveadm/doveadm-auth-server.c index f7c9f687c9..2969bc355c 100644 --- a/src/doveadm/doveadm-auth-server.c +++ b/src/doveadm/doveadm-auth-server.c @@ -295,7 +295,7 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, pool_t pool; int ret; - memset(&service_input, 0, sizeof(service_input)); + i_zero(&service_input); service_input.module = "mail"; service_input.service = input->info.service; service_input.username = input->username; @@ -367,7 +367,7 @@ static void cmd_user_ver2(struct doveadm_cmd_context *cctx) (void)doveadm_cmd_param_str(cctx, "field", &show_field); (void)doveadm_cmd_param_bool(cctx, "userdb-only", &userdb_only); - memset(&input, 0, sizeof(input)); + i_zero(&input); if (doveadm_cmd_param_array(cctx, "auth-info", &optval)) for(;*optval != NULL; optval++) auth_user_info_parse(&input.info, *optval); diff --git a/src/doveadm/doveadm-auth.c b/src/doveadm/doveadm-auth.c index ddbda324ca..d65680e9e3 100644 --- a/src/doveadm/doveadm-auth.c +++ b/src/doveadm/doveadm-auth.c @@ -179,7 +179,7 @@ static void auth_connected(struct auth_client *client, base64_resp = t_str_new(128); base64_encode(str_data(init_resp), str_len(init_resp), base64_resp); - memset(&info, 0, sizeof(info)); + i_zero(&info); info.mech = "PLAIN"; info.service = input->info.service; info.local_ip = input->info.local_ip; @@ -295,7 +295,7 @@ static void cmd_auth_cache_flush(int argc, char *argv[]) static void authtest_input_init(struct authtest_input *input) { - memset(input, 0, sizeof(*input)); + i_zero(input); input->info.service = "doveadm"; input->info.debug = doveadm_settings->auth_debug; } @@ -362,7 +362,7 @@ cmd_auth_master_input(const char *auth_master_socket_path, struct master_auth_request master_auth_req; buffer_t buf; - memset(&master_auth_req, 0, sizeof(master_auth_req)); + i_zero(&master_auth_req); master_auth_req.tag = 1; master_auth_req.auth_pid = input->auth_pid; master_auth_req.auth_id = input->auth_id; @@ -549,7 +549,7 @@ cmd_user_mail_input(struct mail_storage_service_ctx *storage_service, pool_t pool; int ret; - memset(&service_input, 0, sizeof(service_input)); + i_zero(&service_input); service_input.module = "mail"; service_input.service = input->info.service; service_input.username = input->username; diff --git a/src/doveadm/doveadm-cmd.c b/src/doveadm/doveadm-cmd.c index 7d1076207b..62ca39bda9 100644 --- a/src/doveadm/doveadm-cmd.c +++ b/src/doveadm/doveadm-cmd.c @@ -381,7 +381,7 @@ doveadm_build_options(const struct doveadm_cmd_param par[], for(size_t i=0; par[i].name != NULL; i++) { struct option longopt; - memset(&longopt, 0, sizeof(longopt)); + i_zero(&longopt); longopt.name = par[i].name; if (par[i].short_opt != '\0') { longopt.val = par[i].short_opt; diff --git a/src/doveadm/doveadm-dsync.c b/src/doveadm/doveadm-dsync.c index cc4b73a074..cfc91690ba 100644 --- a/src/doveadm/doveadm-dsync.c +++ b/src/doveadm/doveadm-dsync.c @@ -564,7 +564,7 @@ cmd_dsync_run(struct doveadm_mail_cmd_context *_ctx, struct mail_user *user) bool remote_only_changes; int ret = 0; - memset(&set, 0, sizeof(set)); + i_zero(&set); if (_ctx->cur_client_ip.family != 0) { /* include the doveadm client's IP address in the ps output */ set.process_title_prefix = t_strdup_printf( @@ -772,7 +772,7 @@ static int dsync_init_ssl_ctx(struct dsync_cmd_context *ctx, if (ctx->ssl_ctx != NULL) return 0; - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.ca_dir = mail_set->ssl_client_ca_dir; ssl_set.ca_file = mail_set->ssl_client_ca_file; ssl_set.verify_remote_cert = TRUE; diff --git a/src/doveadm/doveadm-fs.c b/src/doveadm/doveadm-fs.c index 1019605df0..856e1a213c 100644 --- a/src/doveadm/doveadm-fs.c +++ b/src/doveadm/doveadm-fs.c @@ -35,12 +35,12 @@ cmd_fs_init(int *argc, char **argv[], int own_arg_count, doveadm_command_t *cmd) fs_cmd_help(cmd); } - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.ca_dir = doveadm_settings->ssl_client_ca_dir; ssl_set.ca_file = doveadm_settings->ssl_client_ca_file; ssl_set.verbose = doveadm_debug; - memset(&fs_set, 0, sizeof(fs_set)); + i_zero(&fs_set); fs_set.ssl_client_set = &ssl_set; fs_set.temp_dir = "/tmp"; fs_set.base_dir = doveadm_settings->base_dir; @@ -343,7 +343,7 @@ cmd_fs_delete_dir_recursive(struct fs *fs, unsigned int async_count, const char *fname, *const *fnamep; int ret; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.fs = fs; ctx.path_prefix = path_prefix; ctx.files_count = I_MAX(async_count, 1); @@ -443,7 +443,7 @@ static void cmd_fs_delete_paths(int argc, char *argv[], fs = cmd_fs_init(&argc, &argv, 0, cmd_fs_delete); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.fs = fs; ctx.path_prefix = ""; ctx.files_count = I_MAX(async_count, 1); diff --git a/src/doveadm/doveadm-kick.c b/src/doveadm/doveadm-kick.c index 5698c37cca..3ba8152534 100644 --- a/src/doveadm/doveadm-kick.c +++ b/src/doveadm/doveadm-kick.c @@ -41,7 +41,7 @@ kick_aggregate_line(struct who_context *_ctx, const struct who_line *line) struct kick_pid *k_pid; struct kick_user new_user, *user; - memset(&new_user, 0, sizeof(new_user)); + i_zero(&new_user); k_pid = hash_table_lookup(ctx->pids, POINTER_CAST(line->pid)); if (k_pid == NULL) { @@ -179,7 +179,7 @@ static void cmd_kick(struct doveadm_cmd_context *cctx) const char *const *masks; struct kick_context ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); if (!doveadm_cmd_param_str(cctx, "socket-path", &(ctx.who.anvil_path))) ctx.who.anvil_path = t_strconcat(doveadm_settings->base_dir, "/anvil", NULL); (void)doveadm_cmd_param_bool(cctx, "force", &(ctx.force_kick)); diff --git a/src/doveadm/doveadm-log.c b/src/doveadm/doveadm-log.c index 7167734535..a5fbad00ed 100644 --- a/src/doveadm/doveadm-log.c +++ b/src/doveadm/doveadm-log.c @@ -35,7 +35,7 @@ cmd_log_test(int argc ATTR_UNUSED, char *argv[] ATTR_UNUSED) master_service->flags |= MASTER_SERVICE_FLAG_DONT_LOG_TO_STDERR; master_service_init_log(master_service, "doveadm: "); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); for (i = 0; i < LAST_LOG_TYPE; i++) { const char *prefix = failure_log_type_prefixes[i]; @@ -221,7 +221,7 @@ static void cmd_log_find(int argc, char *argv[]) struct log_find_context ctx; unsigned int i; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool_alloconly_create("log file", 1024*32); hash_table_create(&ctx.files, ctx.pool, 0, str_hash, strcmp); diff --git a/src/doveadm/doveadm-mail-batch.c b/src/doveadm/doveadm-mail-batch.c index e66e860de7..ab0ba5ff08 100644 --- a/src/doveadm/doveadm-mail-batch.c +++ b/src/doveadm/doveadm-mail-batch.c @@ -65,7 +65,7 @@ cmd_batch_add(struct batch_cmd_context *batchctx, if (cmd_ver2 == NULL) cmd = doveadm_mail_cmd_find_from_argv(argv[0], &argc, &argv); else { - memset(&tmpcmd, 0, sizeof(tmpcmd)); + i_zero(&tmpcmd); tmpcmd.usage_args = cmd_ver2->usage; tmpcmd.name = cmd_ver2->name; tmpcmd.alloc = cmd_ver2->mail_cmd; diff --git a/src/doveadm/doveadm-mail-fetch.c b/src/doveadm/doveadm-mail-fetch.c index c013364ba7..2e6fb3ba59 100644 --- a/src/doveadm/doveadm-mail-fetch.c +++ b/src/doveadm/doveadm-mail-fetch.c @@ -533,10 +533,10 @@ static void parse_fetch_fields(struct fetch_cmd_context *ctx, const char *str) struct fetch_field hdr_field, body_field; struct imap_msgpart *msgpart; - memset(&hdr_field, 0, sizeof(hdr_field)); + i_zero(&hdr_field); hdr_field.print = fetch_hdr_field; - memset(&body_field, 0, sizeof(body_field)); + i_zero(&body_field); body_field.print = fetch_body_field; t_array_init(&ctx->fields, 32); diff --git a/src/doveadm/doveadm-mail-import.c b/src/doveadm/doveadm-mail-import.c index ed2ea706aa..cc8b2c7f9b 100644 --- a/src/doveadm/doveadm-mail-import.c +++ b/src/doveadm/doveadm-mail-import.c @@ -162,7 +162,7 @@ static void cmd_import_init_source_user(struct import_cmd_context *ctx, struct m const char *error; /* create a user for accessing the source storage */ - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "mail"; input.username = ctx->src_username != NULL ? ctx->src_username : diff --git a/src/doveadm/doveadm-mail-mailbox-status.c b/src/doveadm/doveadm-mail-mailbox-status.c index 36606944c2..ad4f7f0c76 100644 --- a/src/doveadm/doveadm-mail-mailbox-status.c +++ b/src/doveadm/doveadm-mail-mailbox-status.c @@ -155,8 +155,8 @@ cmd_mailbox_status_run(struct doveadm_mail_cmd_context *_ctx, const struct mailbox_info *info; int ret = 0; - memset(&ctx->total_status, 0, sizeof(ctx->total_status)); - memset(&ctx->total_metadata, 0, sizeof(ctx->total_metadata)); + i_zero(&ctx->total_status); + i_zero(&ctx->total_metadata); iter = doveadm_mailbox_list_iter_init(_ctx, user, ctx->search_args, iter_flags); diff --git a/src/doveadm/doveadm-mail-server.c b/src/doveadm/doveadm-mail-server.c index 5878138503..0a929d9ca3 100644 --- a/src/doveadm/doveadm-mail-server.c +++ b/src/doveadm/doveadm-mail-server.c @@ -194,7 +194,7 @@ doveadm_mail_server_user_get_host(struct doveadm_mail_cmd_context *ctx, /* make sure we have an auth connection */ mail_storage_service_init_settings(ctx->storage_service, input); - memset(&info, 0, sizeof(info)); + i_zero(&info); info.service = master_service_get_name(master_service); info.local_ip = input->local_ip; info.remote_ip = input->remote_ip; diff --git a/src/doveadm/doveadm-mail.c b/src/doveadm/doveadm-mail.c index 076a657dd8..a904e638bb 100644 --- a/src/doveadm/doveadm-mail.c +++ b/src/doveadm/doveadm-mail.c @@ -343,7 +343,7 @@ static void doveadm_cctx_to_storage_service_input(const struct doveadm_cmd_context *cctx, struct mail_storage_service_input *input_r) { - memset(input_r, 0, sizeof(*input_r)); + i_zero(input_r); input_r->service = "doveadm"; input_r->remote_ip = cctx->remote_ip; input_r->remote_port = cctx->remote_port; @@ -642,7 +642,7 @@ doveadm_mail_cmd(const struct doveadm_mail_cmd *cmd, int argc, char *argv[]) ctx->cli = TRUE; ctx->cur_username = getenv("USER"); - memset(&cctx, 0, sizeof(cctx)); + i_zero(&cctx); getopt_args = "AF:S:u:"; /* keep context's getopt_args first in case it contains '+' */ @@ -908,7 +908,7 @@ void doveadm_mail_init(void) for (i = 0; i < N_ELEMENTS(mail_commands_ver2); i++) doveadm_cmd_register_ver2(mail_commands_ver2[i]); - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; mod_set.debug = doveadm_debug; diff --git a/src/doveadm/doveadm-mount.c b/src/doveadm/doveadm-mount.c index f7a1531090..a6b9100e07 100644 --- a/src/doveadm/doveadm-mount.c +++ b/src/doveadm/doveadm-mount.c @@ -85,7 +85,7 @@ static void cmd_mount_add(int argc, char *argv[]) mountpoint_list_default_ignore_prefixes, mountpoint_list_default_ignore_types); } else { - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.mount_path = argv[1]; rec.state = argv[2] != NULL ? argv[2] : MOUNTPOINT_STATE_DEFAULT; diff --git a/src/doveadm/doveadm-penalty.c b/src/doveadm/doveadm-penalty.c index 2a4b33d887..ff67f70447 100644 --- a/src/doveadm/doveadm-penalty.c +++ b/src/doveadm/doveadm-penalty.c @@ -32,7 +32,7 @@ static void penalty_parse_line(const char *line, struct penalty_line *line_r) const char *last_penalty_str = args[2]; const char *last_update_str = args[3]; - memset(line_r, 0, sizeof(*line_r)); + i_zero(line_r); (void)net_addr2ip(ident, &line_r->ip); if (str_to_uint(penalty_str, &line_r->penalty) < 0 || @@ -93,7 +93,7 @@ static void cmd_penalty(struct doveadm_cmd_context *cctx) struct penalty_context ctx; const char *netmask; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); if (!doveadm_cmd_param_str(cctx, "socket-path", &(ctx.anvil_path))) ctx.anvil_path = t_strconcat(doveadm_settings->base_dir, "/anvil", NULL); diff --git a/src/doveadm/doveadm-print-formatted.c b/src/doveadm/doveadm-print-formatted.c index 53033ad67f..8831feba7c 100644 --- a/src/doveadm/doveadm-print-formatted.c +++ b/src/doveadm/doveadm-print-formatted.c @@ -28,7 +28,7 @@ void doveadm_print_formatted_set_format(const char *format) static void doveadm_print_formatted_init(void) { - memset(&ctx,0,sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool_alloconly_create("doveadm formatted print", 1024); ctx.buf = str_new(ctx.pool, 256); p_array_init(&ctx.headers, ctx.pool, 8); @@ -39,7 +39,7 @@ static void doveadm_print_formatted_header(const struct doveadm_print_header *hdr) { struct var_expand_table entry; - memset(&entry, 0, sizeof(entry)); + i_zero(&entry); entry.key = '\0'; entry.long_key = p_strdup(ctx.pool, hdr->key); entry.value = NULL; diff --git a/src/doveadm/doveadm-print-json.c b/src/doveadm/doveadm-print-json.c index 54ee3dffca..6ccf1ead77 100644 --- a/src/doveadm/doveadm-print-json.c +++ b/src/doveadm/doveadm-print-json.c @@ -27,7 +27,7 @@ static void doveadm_print_json_flush_internal(void); static void doveadm_print_json_init(void) { - memset(&ctx,0,sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool_alloconly_create("doveadm json print", 1024); ctx.str = str_new(ctx.pool, 256); p_array_init(&ctx.headers, ctx.pool, 1); diff --git a/src/doveadm/doveadm-print.c b/src/doveadm/doveadm-print.c index 69401ef54d..fe035c74ad 100644 --- a/src/doveadm/doveadm-print.c +++ b/src/doveadm/doveadm-print.c @@ -39,7 +39,7 @@ void doveadm_print_header(const char *key, const char *title, i_assert(title != NULL); - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.key = key; hdr.title = title; hdr.flags = flags; diff --git a/src/doveadm/doveadm-pw.c b/src/doveadm/doveadm-pw.c index f848034d3e..8e3caeb142 100644 --- a/src/doveadm/doveadm-pw.c +++ b/src/doveadm/doveadm-pw.c @@ -32,7 +32,7 @@ static void cmd_pw(int argc, char *argv[]) random_init(); password_schemes_init(); - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; mod_set.ignore_dlopen_errors = TRUE; diff --git a/src/doveadm/doveadm-stats.c b/src/doveadm/doveadm-stats.c index 54201ed78a..e7a26cea93 100644 --- a/src/doveadm/doveadm-stats.c +++ b/src/doveadm/doveadm-stats.c @@ -471,7 +471,7 @@ static void stats_top(const char *path, const char *sort_type) { struct top_context ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.path = path; ctx.fd = doveadm_connect(path); ctx.prev_pool = pool_alloconly_create("stats top", 1024*16); diff --git a/src/doveadm/doveadm-util.c b/src/doveadm/doveadm-util.c index 00c83e23b7..ebecf53f54 100644 --- a/src/doveadm/doveadm-util.c +++ b/src/doveadm/doveadm-util.c @@ -27,7 +27,7 @@ void doveadm_load_modules(void) /* some doveadm plugins have dependencies to mail plugins. we can load only those whose dependencies have been loaded earlier, the rest are ignored. */ - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; mod_set.debug = doveadm_debug; diff --git a/src/doveadm/doveadm-who.c b/src/doveadm/doveadm-who.c index d0f3b0f5d7..4c24f5fb24 100644 --- a/src/doveadm/doveadm-who.c +++ b/src/doveadm/doveadm-who.c @@ -57,7 +57,7 @@ static int who_parse_line(const char *line, struct who_line *line_r) const char *refcount_str = args[2]; const char *p, *ip_str; - memset(line_r, 0, sizeof(*line_r)); + i_zero(line_r); /* ident = service/ip/username (imap, pop3) or service/username (lmtp) */ @@ -287,7 +287,7 @@ static void cmd_who(struct doveadm_cmd_context *cctx) struct who_context ctx; bool separate_connections = FALSE; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); if (!doveadm_cmd_param_str(cctx, "socket-path", &(ctx.anvil_path))) ctx.anvil_path = t_strconcat(doveadm_settings->base_dir, "/anvil", NULL); (void)doveadm_cmd_param_bool(cctx, "separate-connections", &separate_connections); diff --git a/src/doveadm/doveadm-zlib.c b/src/doveadm/doveadm-zlib.c index 3094400d24..341cff478b 100644 --- a/src/doveadm/doveadm-zlib.c +++ b/src/doveadm/doveadm-zlib.c @@ -162,7 +162,7 @@ static void cmd_zlibconnect(int argc ATTR_UNUSED, char *argv[]) i_info("Connected to %s port %u. Ctrl-D starts compression", net_ip2addr(&ips[0]), port); - memset(&client, 0, sizeof(client)); + i_zero(&client); client.fd = fd; client.input = i_stream_create_fd(fd, (size_t)-1, FALSE); client.output = o_stream_create_fd(fd, 0, FALSE); diff --git a/src/doveadm/doveadm.c b/src/doveadm/doveadm.c index ab1daee422..8a144c5032 100644 --- a/src/doveadm/doveadm.c +++ b/src/doveadm/doveadm.c @@ -254,7 +254,7 @@ static void doveadm_read_settings(void) const struct doveadm_settings *set; const char *error; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "doveadm"; input.service = "doveadm"; @@ -296,7 +296,7 @@ int main(int argc, char *argv[]) bool quick_init = FALSE; int c; - memset(&cctx,0,sizeof(cctx)); + i_zero(&cctx); cctx.cli = TRUE; i_set_failure_exit_callback(failure_exit_callback); diff --git a/src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c b/src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c index 7ebde7aa5a..b95b4d4fe3 100644 --- a/src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c +++ b/src/doveadm/dsync/dsync-brain-mailbox-tree-sync.c @@ -17,7 +17,7 @@ sync_create_box(struct dsync_brain *brain, struct mailbox *box, const char *errstr; int ret; - memset(&update, 0, sizeof(update)); + i_zero(&update); memcpy(update.mailbox_guid, mailbox_guid, sizeof(update.mailbox_guid)); update.uid_validity = uid_validity; @@ -72,7 +72,7 @@ sync_create_box(struct dsync_brain *brain, struct mailbox *box, guid_128_to_string(metadata.guid), guid_128_to_string(mailbox_guid)); } - memset(&update, 0, sizeof(update)); + i_zero(&update); memcpy(update.mailbox_guid, mailbox_guid, sizeof(update.mailbox_guid)); if (mailbox_update(box, &update) < 0) { diff --git a/src/doveadm/dsync/dsync-brain-mailbox.c b/src/doveadm/dsync/dsync-brain-mailbox.c index e62a658e38..71ebe27468 100644 --- a/src/doveadm/dsync/dsync-brain-mailbox.c +++ b/src/doveadm/dsync/dsync-brain-mailbox.c @@ -154,13 +154,13 @@ dsync_brain_sync_mailbox_init(struct dsync_brain *brain, dsync_mailbox_cache_field_dup(&brain->local_dsync_box.cache_fields, &local_dsync_box->cache_fields, brain->dsync_box_pool); - memset(&brain->remote_dsync_box, 0, sizeof(brain->remote_dsync_box)); + i_zero(&brain->remote_dsync_box); state = dsync_mailbox_state_find(brain, local_dsync_box->mailbox_guid); if (state != NULL) brain->mailbox_state = *state; else { - memset(&brain->mailbox_state, 0, sizeof(brain->mailbox_state)); + i_zero(&brain->mailbox_state); memcpy(brain->mailbox_state.mailbox_guid, local_dsync_box->mailbox_guid, sizeof(brain->mailbox_state.mailbox_guid)); @@ -421,7 +421,7 @@ static int dsync_box_get(struct mailbox *box, struct dsync_mailbox *dsync_box_r, i_assert(status.uidvalidity != 0 || status.messages == 0); - memset(dsync_box_r, 0, sizeof(*dsync_box_r)); + i_zero(dsync_box_r); memcpy(dsync_box_r->mailbox_guid, metadata.guid, sizeof(dsync_box_r->mailbox_guid)); dsync_box_r->uid_validity = status.uidvalidity; @@ -681,7 +681,7 @@ bool dsync_brain_mailbox_update_pre(struct dsync_brain *brain, bool ret = TRUE; *reason_r = NULL; - memset(&update, 0, sizeof(update)); + i_zero(&update); if (local_box->uid_validity != remote_box->uid_validity) { /* Keep the UIDVALIDITY for the mailbox that has more @@ -730,7 +730,7 @@ dsync_brain_slave_send_mailbox_lost(struct dsync_brain *brain, brain->master_brain ? 'M' : 'S', guid_128_to_string(dsync_box->mailbox_guid)); } - memset(&delete_box, 0, sizeof(delete_box)); + i_zero(&delete_box); memcpy(delete_box.mailbox_guid, dsync_box->mailbox_guid, sizeof(delete_box.mailbox_guid)); t_array_init(&delete_box.cache_fields, 0); diff --git a/src/doveadm/dsync/dsync-brain-mails.c b/src/doveadm/dsync/dsync-brain-mails.c index 6db6c26725..25d531ed3e 100644 --- a/src/doveadm/dsync/dsync-brain-mails.c +++ b/src/doveadm/dsync/dsync-brain-mails.c @@ -231,7 +231,7 @@ static void dsync_brain_sync_half_finished(struct dsync_brain *brain) return; /* finished with this mailbox */ - memset(&state, 0, sizeof(state)); + i_zero(&state); memcpy(state.mailbox_guid, brain->local_dsync_box.mailbox_guid, sizeof(state.mailbox_guid)); state.last_uidvalidity = brain->local_dsync_box.uid_validity; diff --git a/src/doveadm/dsync/dsync-brain.c b/src/doveadm/dsync/dsync-brain.c index 9ba4eadd44..ce3797d082 100644 --- a/src/doveadm/dsync/dsync-brain.c +++ b/src/doveadm/dsync/dsync-brain.c @@ -244,7 +244,7 @@ dsync_brain_master_init(struct mail_user *user, struct dsync_ibc *ibc, } dsync_brain_mailbox_trees_init(brain); - memset(&ibc_set, 0, sizeof(ibc_set)); + i_zero(&ibc_set); ibc_set.hostname = my_hostdomain(); ibc_set.sync_ns_prefixes = sync_ns_str == NULL ? NULL : str_c(sync_ns_str); @@ -295,7 +295,7 @@ dsync_brain_slave_init(struct mail_user *user, struct dsync_ibc *ibc, brain->verbose_proctitle = FALSE; } - memset(&ibc_set, 0, sizeof(ibc_set)); + i_zero(&ibc_set); ibc_set.hdr_hash_v2 = TRUE; ibc_set.hostname = my_hostdomain(); dsync_ibc_send_handshake(ibc, &ibc_set); diff --git a/src/doveadm/dsync/dsync-ibc-stream.c b/src/doveadm/dsync/dsync-ibc-stream.c index 650bc3b62f..33c729d1c2 100644 --- a/src/doveadm/dsync/dsync-ibc-stream.c +++ b/src/doveadm/dsync/dsync-ibc-stream.c @@ -936,7 +936,7 @@ dsync_ibc_stream_recv_mailbox_state(struct dsync_ibc *_ibc, const char *value; enum dsync_ibc_recv_ret ret; - memset(state_r, 0, sizeof(*state_r)); + i_zero(state_r); ret = dsync_ibc_stream_input_next(ibc, ITEM_MAILBOX_STATE, &decoder); if (ret != DSYNC_IBC_RECV_RET_OK) @@ -1342,7 +1342,7 @@ parse_cache_field(struct dsync_ibc_stream *ibc, struct dsync_mailbox *box, return -1; } - memset(&field, 0, sizeof(field)); + i_zero(&field); value = dsync_deserializer_decode_get(decoder, "name"); field.name = p_strdup(ibc->ret_pool, value); diff --git a/src/doveadm/dsync/dsync-mail.c b/src/doveadm/dsync/dsync-mail.c index 7bea5e89f1..713f0d7235 100644 --- a/src/doveadm/dsync/dsync-mail.c +++ b/src/doveadm/dsync/dsync-mail.c @@ -47,7 +47,7 @@ int dsync_mail_get_hdr_hash(struct mail *mail, unsigned int version, input = i_stream_create_lf(hdr_input); md5_init(&md5_ctx); - memset(&hash_ctx, 0, sizeof(hash_ctx)); + i_zero(&hash_ctx); while ((sret = i_stream_read_more(input, &data, &size)) > 0) { message_header_hash_more(&hash_ctx, &hash_method_md5, &md5_ctx, version, data, size); @@ -68,7 +68,7 @@ int dsync_mail_fill(struct mail *mail, bool minimal_fill, { const char *guid; - memset(dmail_r, 0, sizeof(*dmail_r)); + i_zero(dmail_r); if (mail_get_special(mail, MAIL_FETCH_GUID, &guid) < 0) { *error_field_r = "GUID"; diff --git a/src/doveadm/dsync/dsync-mailbox-export.c b/src/doveadm/dsync/dsync-mailbox-export.c index f078ee991d..f817f11b26 100644 --- a/src/doveadm/dsync/dsync-mailbox-export.c +++ b/src/doveadm/dsync/dsync-mailbox-export.c @@ -208,7 +208,7 @@ search_update_flag_change_guid(struct dsync_mailbox_exporter *exporter, return -1; if (ret == 0) { /* the message was expunged during export */ - memset(change, 0, sizeof(*change)); + i_zero(change); change->type = DSYNC_MAIL_CHANGE_TYPE_EXPUNGE; change->uid = mail->uid; @@ -633,7 +633,7 @@ dsync_mailbox_export_iter_next_attr(struct dsync_mailbox_exporter *exporter) } attr = &exporter->attr; - memset(attr, 0, sizeof(*attr)); + i_zero(attr); attr->type = exporter->attr_type; attr->value = p_strdup(exporter->pool, value.value); attr->value_stream = value.value_stream; @@ -907,7 +907,7 @@ int dsync_mailbox_export_next_mail(struct dsync_mailbox_exporter *exporter, return them */ guids = array_get(&exporter->expunged_guids, &count); if (exporter->expunged_guid_idx < count) { - memset(&exporter->dsync_mail, 0, sizeof(exporter->dsync_mail)); + i_zero(&exporter->dsync_mail); exporter->dsync_mail.guid = guids[exporter->expunged_guid_idx++]; *mail_r = &exporter->dsync_mail; diff --git a/src/doveadm/dsync/dsync-mailbox-import.c b/src/doveadm/dsync/dsync-mailbox-import.c index fb3404f370..607b895bfa 100644 --- a/src/doveadm/dsync/dsync-mailbox-import.c +++ b/src/doveadm/dsync/dsync-mailbox-import.c @@ -529,7 +529,7 @@ dsync_mailbox_import_attribute_real(struct dsync_mailbox_importer *importer, if (ignore) return 0; - memset(&value, 0, sizeof(value)); + i_zero(&value); value.value = attr->value; value.value_stream = attr->value_stream; value.last_change = attr->last_change; @@ -780,13 +780,13 @@ static bool dsync_mailbox_try_save_cur(struct dsync_mailbox_importer *importer, int diff; bool remote_saved; - memset(&m1, 0, sizeof(m1)); + i_zero(&m1); if (importer->cur_mail != NULL) { m1.guid = importer->mails_have_guids ? importer->cur_guid : importer->cur_hdr_hash; m1.uid = importer->cur_mail->uid; } - memset(&m2, 0, sizeof(m2)); + i_zero(&m2); if (save_change != NULL) { m2.guid = importer->mails_have_guids ? save_change->guid : save_change->hdr_hash; @@ -2712,7 +2712,7 @@ static int dsync_mailbox_import_finish(struct dsync_mailbox_importer *importer, if (ret == 0) { /* update mailbox metadata if we successfully saved everything. */ - memset(&update, 0, sizeof(update)); + i_zero(&update); update.min_next_uid = importer->remote_uid_next; update.min_first_recent_uid = I_MIN(importer->last_common_uid+1, diff --git a/src/doveadm/dsync/dsync-mailbox-tree-fill.c b/src/doveadm/dsync/dsync-mailbox-tree-fill.c index 4ccc17f831..8ec4ea17db 100644 --- a/src/doveadm/dsync/dsync-mailbox-tree-fill.c +++ b/src/doveadm/dsync/dsync-mailbox-tree-fill.c @@ -243,7 +243,7 @@ dsync_mailbox_tree_fix_guid_duplicate(struct dsync_mailbox_tree *tree, const char *change_vname; int ret = 0; - memset(&update, 0, sizeof(update)); + i_zero(&update); guid_128_generate(update.mailbox_guid); /* just in case the duplication exists in both sides, diff --git a/src/doveadm/dsync/dsync-transaction-log-scan.c b/src/doveadm/dsync/dsync-transaction-log-scan.c index 8fc8a99e66..2f4c26c62e 100644 --- a/src/doveadm/dsync/dsync-transaction-log-scan.c +++ b/src/doveadm/dsync/dsync-transaction-log-scan.c @@ -47,7 +47,7 @@ export_change_get(struct dsync_transaction_log_scan *ctx, uint32_t uid, } else if (type == DSYNC_MAIL_CHANGE_TYPE_EXPUNGE) { /* expunge overrides flag changes */ orig_guid = change->guid; - memset(change, 0, sizeof(*change)); + i_zero(change); change->type = type; change->uid = uid; change->guid = orig_guid; diff --git a/src/doveadm/main.c b/src/doveadm/main.c index a371959853..ef7da1a172 100644 --- a/src/doveadm/main.c +++ b/src/doveadm/main.c @@ -125,7 +125,7 @@ int main(int argc, char *argv[]) } } - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "doveadm"; input.service = "doveadm"; diff --git a/src/doveadm/server-connection.c b/src/doveadm/server-connection.c index 76a9611937..c098f65933 100644 --- a/src/doveadm/server-connection.c +++ b/src/doveadm/server-connection.c @@ -407,7 +407,7 @@ static int server_connection_read_settings(struct server_connection *conn) in_port_t port; void *set; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.service = "doveadm"; @@ -449,7 +449,7 @@ static int server_connection_init_ssl(struct server_connection *conn) if (conn->server->ssl_ctx == NULL) return 0; - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.verify_remote_cert = TRUE; ssl_set.require_valid_cert = TRUE; ssl_set.verbose_invalid_cert = TRUE; diff --git a/src/imap-hibernate/imap-hibernate-client.c b/src/imap-hibernate/imap-hibernate-client.c index df7d761639..319617ffb6 100644 --- a/src/imap-hibernate/imap-hibernate-client.c +++ b/src/imap-hibernate/imap-hibernate-client.c @@ -49,7 +49,7 @@ imap_hibernate_client_parse_input(const char *const *args, pool_t pool, const char *key, *value; unsigned int peer_dev_major = 0, peer_dev_minor = 0; - memset(state_r, 0, sizeof(*state_r)); + i_zero(state_r); if (args[0] == NULL) { *error_r = "Missing username in input"; return -1; diff --git a/src/imap-login/client-authenticate.c b/src/imap-login/client-authenticate.c index 829ad4a495..290167dd0b 100644 --- a/src/imap-login/client-authenticate.c +++ b/src/imap-login/client-authenticate.c @@ -57,7 +57,7 @@ void imap_client_auth_result(struct client *client, */ referral = t_str_new(128); - memset(&url, 0, sizeof(url)); + i_zero(&url); url.userid = reply->destuser; url.auth_type = client->auth_mech_name; url.host_name = reply->host; diff --git a/src/imap-login/imap-proxy.c b/src/imap-login/imap-proxy.c index 1cdce494ff..e3815952e0 100644 --- a/src/imap-login/imap-proxy.c +++ b/src/imap-login/imap-proxy.c @@ -114,7 +114,7 @@ static int proxy_write_login(struct imap_client *client, string_t *str) } i_assert(client->common.proxy_sasl_client == NULL); - memset(&sasl_set, 0, sizeof(sasl_set)); + i_zero(&sasl_set); sasl_set.authid = client->common.proxy_master_user != NULL ? client->common.proxy_master_user : client->common.proxy_user; sasl_set.authzid = client->common.proxy_user; diff --git a/src/imap-urlauth/imap-urlauth-worker.c b/src/imap-urlauth/imap-urlauth-worker.c index d4ce48e061..3e39666a1f 100644 --- a/src/imap-urlauth/imap-urlauth-worker.c +++ b/src/imap-urlauth/imap-urlauth-worker.c @@ -577,7 +577,7 @@ client_handle_user_command(struct client *client, const char *cmd, } /* lookup user */ - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "imap-urlauth-worker"; input.service = "imap-urlauth-worker"; input.username = args[0]; @@ -633,7 +633,7 @@ client_handle_user_command(struct client *client, const char *cmd, return 0; } - memset(&config, 0, sizeof(config)); + i_zero(&config); config.url_host = set->imap_urlauth_host; config.url_port = set->imap_urlauth_port; config.access_user = client->access_user; diff --git a/src/imap-urlauth/imap-urlauth.c b/src/imap-urlauth/imap-urlauth.c index 0e6310dda9..a4332fb69e 100644 --- a/src/imap-urlauth/imap-urlauth.c +++ b/src/imap-urlauth/imap-urlauth.c @@ -189,7 +189,7 @@ int main(int argc, char *argv[]) const char *auth_socket_path = "auth-master"; int c; - memset(&login_set, 0, sizeof(login_set)); + i_zero(&login_set); login_set.postlogin_timeout_secs = MASTER_POSTLOGIN_TIMEOUT_DEFAULT; if (IS_STANDALONE() && getuid() == 0 && @@ -219,7 +219,7 @@ int main(int argc, char *argv[]) } master_service_init_log(master_service, "imap-urlauth: "); - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "imap-urlauth"; input.service = "imap-urlauth"; diff --git a/src/imap/cmd-fetch.c b/src/imap/cmd-fetch.c index 8f56e48059..b9c34a0ce3 100644 --- a/src/imap/cmd-fetch.c +++ b/src/imap/cmd-fetch.c @@ -26,7 +26,7 @@ imap_fetch_cmd_init_handler(struct imap_fetch_context *ctx, { struct imap_fetch_init_context init_ctx; - memset(&init_ctx, 0, sizeof(init_ctx)); + i_zero(&init_ctx); init_ctx.fetch_ctx = ctx; init_ctx.pool = ctx->ctx_pool; init_ctx.name = name; @@ -283,7 +283,7 @@ bool cmd_fetch(struct client_command_context *cmd) } if (send_vanished) { - memset(&qresync_args, 0, sizeof(qresync_args)); + i_zero(&qresync_args); if (imap_fetch_send_vanished(client, client->mailbox, search_args, &qresync_args) < 0) { mail_search_args_unref(&search_args); diff --git a/src/imap/cmd-notify.c b/src/imap/cmd-notify.c index 725e4d5fb7..e2a7b33efa 100644 --- a/src/imap/cmd-notify.c +++ b/src/imap/cmd-notify.c @@ -407,8 +407,8 @@ imap_notify_box_send_status(struct client_command_context *cmd, mailbox_equals(cmd->client->mailbox, info->ns, info->vname)) return; - memset(&items, 0, sizeof(items)); - memset(&result, 0, sizeof(result)); + i_zero(&items); + i_zero(&result); items.status = STATUS_UIDVALIDITY | STATUS_UIDNEXT | STATUS_MESSAGES | STATUS_UNSEEN; diff --git a/src/imap/cmd-select.c b/src/imap/cmd-select.c index 7558e23f81..3d5f595e82 100644 --- a/src/imap/cmd-select.c +++ b/src/imap/cmd-select.c @@ -245,7 +245,7 @@ static int select_qresync(struct imap_select_context *ctx) search_args->args->value.seqset = ctx->qresync_known_uids; imap_search_add_changed_since(search_args, ctx->qresync_modseq); - memset(&qresync_args, 0, sizeof(qresync_args)); + i_zero(&qresync_args); qresync_args.qresync_sample_seqset = &ctx->qresync_sample_seqset; qresync_args.qresync_sample_uidset = &ctx->qresync_sample_uidset; diff --git a/src/imap/cmd-setmetadata.c b/src/imap/cmd-setmetadata.c index b8a6aaf1f3..5ad5fb4efc 100644 --- a/src/imap/cmd-setmetadata.c +++ b/src/imap/cmd-setmetadata.c @@ -132,7 +132,7 @@ cmd_setmetadata_entry_read_stream(struct imap_setmetadata_context *ctx) return 1; } - memset(&value, 0, sizeof(value)); + i_zero(&value); value.value_stream = ctx->input; if (imap_metadata_set(ctx->trans, ctx->entry_name, &value) < 0) { /* delay reporting the failure so we'll finish @@ -167,7 +167,7 @@ cmd_setmetadata_entry(struct imap_setmetadata_context *ctx, /* we have the value already */ if (ctx->failed) return 1; - memset(&value, 0, sizeof(value)); + i_zero(&value); value.value = imap_arg_as_nstring(entry_value); ret = imap_metadata_set(ctx->trans, entry_name, &value); if (ret < 0) { diff --git a/src/imap/cmd-store.c b/src/imap/cmd-store.c index 16fc26e2f1..1ae3b110a2 100644 --- a/src/imap/cmd-store.c +++ b/src/imap/cmd-store.c @@ -152,7 +152,7 @@ bool cmd_store(struct client_command_context *cmd) if (ret <= 0) return ret < 0; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.cmd = cmd; if (!store_parse_args(&ctx, ++args)) { mail_search_args_unref(&search_args); diff --git a/src/imap/imap-client.c b/src/imap/imap-client.c index 174aa36de0..2f5ffffa44 100644 --- a/src/imap/imap-client.c +++ b/src/imap/imap-client.c @@ -54,7 +54,7 @@ static void client_init_urlauth(struct client *client) { struct imap_urlauth_config config; - memset(&config, 0, sizeof(config)); + i_zero(&config); config.url_host = client->set->imap_urlauth_host; config.url_port = client->set->imap_urlauth_port; config.socket_path = t_strconcat(client->user->set->base_dir, diff --git a/src/imap/imap-commands-util.c b/src/imap/imap-commands-util.c index fac0301216..0701e952a1 100644 --- a/src/imap/imap-commands-util.c +++ b/src/imap/imap-commands-util.c @@ -336,7 +336,7 @@ client_get_keyword_names(struct client *client, ARRAY_TYPE(keywords) *dest, void msgset_generator_init(struct msgset_generator_context *ctx, string_t *str) { - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ctx->str = str; ctx->last_uid = (uint32_t)-1; } diff --git a/src/imap/imap-commands.c b/src/imap/imap-commands.c index e6719404de..0cc5e03c52 100644 --- a/src/imap/imap-commands.c +++ b/src/imap/imap-commands.c @@ -95,7 +95,7 @@ void command_register(const char *name, command_func_t *func, { struct command cmd; - memset(&cmd, 0, sizeof(cmd)); + i_zero(&cmd); cmd.name = name; cmd.func = func; cmd.flags = flags; diff --git a/src/imap/imap-fetch.c b/src/imap/imap-fetch.c index 82c4647fbd..6feed5581e 100644 --- a/src/imap/imap-fetch.c +++ b/src/imap/imap-fetch.c @@ -70,7 +70,7 @@ void imap_fetch_init_nofail_handler(struct imap_fetch_context *ctx, { struct imap_fetch_init_context init_ctx; - memset(&init_ctx, 0, sizeof(init_ctx)); + i_zero(&init_ctx); init_ctx.fetch_ctx = ctx; init_ctx.pool = ctx->ctx_pool; @@ -86,7 +86,7 @@ int imap_fetch_att_list_parse(struct client *client, pool_t pool, struct imap_fetch_init_context init_ctx; const char *str; - memset(&init_ctx, 0, sizeof(init_ctx)); + i_zero(&init_ctx); init_ctx.fetch_ctx = imap_fetch_alloc(client, pool); init_ctx.pool = pool; init_ctx.args = list; @@ -155,7 +155,7 @@ void imap_fetch_add_handler(struct imap_fetch_init_context *ctx, } } - memset(&h, 0, sizeof(h)); + i_zero(&h); h.handler = handler; h.context = context; h.buffered = (flags & IMAP_FETCH_HANDLER_FLAG_BUFFERED) != 0; @@ -355,7 +355,7 @@ void imap_fetch_begin(struct imap_fetch_context *ctx, struct mailbox *box, i_assert(!ctx->state.fetching); imap_fetch_init(ctx); - memset(&ctx->state, 0, sizeof(ctx->state)); + i_zero(&ctx->state); if (array_count(&ctx->all_headers) > 0 && ((ctx->fetch_data & (MAIL_FETCH_STREAM_HEADER | diff --git a/src/imap/imap-master-client.c b/src/imap/imap-master-client.c index e0a08da1fe..cd10ecae03 100644 --- a/src/imap/imap-master-client.c +++ b/src/imap/imap-master-client.c @@ -57,8 +57,8 @@ imap_master_client_parse_input(const char *const *args, pool_t pool, const char *key, *value; unsigned int peer_dev_major = 0, peer_dev_minor = 0; - memset(input_r, 0, sizeof(*input_r)); - memset(master_input_r, 0, sizeof(*master_input_r)); + i_zero(input_r); + i_zero(master_input_r); master_input_r->client_input = buffer_create_dynamic(pool, 64); master_input_r->client_output = buffer_create_dynamic(pool, 16); master_input_r->state = buffer_create_dynamic(pool, 512); diff --git a/src/imap/imap-notify.c b/src/imap/imap-notify.c index 1fc16729df..d570fa9fd9 100644 --- a/src/imap/imap-notify.c +++ b/src/imap/imap-notify.c @@ -52,7 +52,7 @@ static int imap_notify_status(struct imap_notify_namespace *notify_ns, enum mail_error error; int ret = 1; - memset(&items, 0, sizeof(items)); + i_zero(&items); if ((client->enabled_features & MAILBOX_FEATURE_CONDSTORE) != 0) items.status |= STATUS_HIGHESTMODSEQ; diff --git a/src/imap/imap-state.c b/src/imap/imap-state.c index 81a16785c2..333346042b 100644 --- a/src/imap/imap-state.c +++ b/src/imap/imap-state.c @@ -494,7 +494,7 @@ import_state_mailbox_struct(const unsigned char *data, size_t size, { const unsigned char *p = data, *end = data + size; - memset(state_r, 0, sizeof(*state_r)); + i_zero(state_r); t_array_init(&state_r->recent_uids, 8); /* vname */ diff --git a/src/imap/imap-status.c b/src/imap/imap-status.c index 43037e2f2d..cf7567be5b 100644 --- a/src/imap/imap-status.c +++ b/src/imap/imap-status.c @@ -19,7 +19,7 @@ int imap_status_parse_items(struct client_command_context *cmd, return -1; } - memset(items_r, 0, sizeof(*items_r)); + i_zero(items_r); for (; !IMAP_ARG_IS_EOL(args); args++) { if (!imap_arg_get_atom(args, &item)) { /* list may contain only atoms */ diff --git a/src/imap/main.c b/src/imap/main.c index d24f039d35..70e208cac8 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -146,7 +146,7 @@ client_parse_input(const unsigned char *data, size_t len, i_assert(len > 0); - memset(input_r, 0, sizeof(*input_r)); + i_zero(input_r); if (data[0] == '1') input_r->send_untagged_capability = TRUE; @@ -176,7 +176,7 @@ client_add_input(struct client *client, const unsigned char *client_input, i_panic("Couldn't add client input to stream"); } else { /* IMAPLOGINTAG environment is compatible with mailfront */ - memset(&input, 0, sizeof(input)); + i_zero(&input); input.tag = getenv("IMAPLOGINTAG"); } @@ -270,7 +270,7 @@ static void main_stdio_run(const char *username) struct mail_storage_service_input input; const char *value, *error, *input_base64; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "imap"; input.username = username != NULL ? username : getenv("USER"); if (input.username == NULL && IS_STANDALONE()) @@ -305,7 +305,7 @@ login_client_connected(const struct master_login_client *login_client, enum mail_auth_request_flags flags; const char *error; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "imap"; input.local_ip = login_client->auth_req.local_ip; input.remote_ip = login_client->auth_req.remote_ip; @@ -377,7 +377,7 @@ int main(int argc, char *argv[]) const char *username = NULL, *auth_socket_path = "auth-master"; int c; - memset(&login_set, 0, sizeof(login_set)); + i_zero(&login_set); login_set.postlogin_timeout_secs = MASTER_POSTLOGIN_TIMEOUT_DEFAULT; login_set.request_auth_token = TRUE; diff --git a/src/indexer/indexer-worker.c b/src/indexer/indexer-worker.c index f766fc6039..ec2bc09787 100644 --- a/src/indexer/indexer-worker.c +++ b/src/indexer/indexer-worker.c @@ -34,7 +34,7 @@ static void drop_privileges(void) struct master_service_settings_input input; struct master_service_settings_output output; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "mail"; input.service = "indexer-worker"; (void)master_service_settings_read(master_service, diff --git a/src/indexer/master-connection.c b/src/indexer/master-connection.c index 87baa58442..d366a0cbc3 100644 --- a/src/indexer/master-connection.c +++ b/src/indexer/master-connection.c @@ -208,7 +208,7 @@ master_connection_input_line(struct master_connection *conn, const char *line) return -1; } - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "mail"; input.service = "indexer-worker"; input.username = args[0]; diff --git a/src/lda/main.c b/src/lda/main.c index 8351860e34..ac9c5655af 100644 --- a/src/lda/main.c +++ b/src/lda/main.c @@ -310,7 +310,7 @@ int main(int argc, char *argv[]) MASTER_SERVICE_FLAG_DONT_LOG_TO_STDERR, &argc, &argv, "a:d:ef:m:p:r:"); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.session = mail_deliver_session_init(); ctx.pool = ctx.session->pool; ctx.dest_mailbox_name = "INBOX"; @@ -399,7 +399,7 @@ int main(int argc, char *argv[]) } master_service_init_finish(master_service); - memset(&service_input, 0, sizeof(service_input)); + i_zero(&service_input); service_input.module = "lda"; service_input.service = "lda"; service_input.username = user; diff --git a/src/lib-auth/auth-master.c b/src/lib-auth/auth-master.c index 28f6e91638..ac625c399f 100644 --- a/src/lib-auth/auth-master.c +++ b/src/lib-auth/auth-master.c @@ -488,7 +488,7 @@ int auth_master_user_lookup(struct auth_master_connection *conn, return 0; } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.conn = conn; ctx.return_value = -1; ctx.pool = pool; @@ -527,7 +527,7 @@ int auth_master_user_lookup(struct auth_master_connection *conn, void auth_user_fields_parse(const char *const *fields, pool_t pool, struct auth_user_reply *reply_r) { - memset(reply_r, 0, sizeof(*reply_r)); + i_zero(reply_r); reply_r->uid = (uid_t)-1; reply_r->gid = (gid_t)-1; p_array_init(&reply_r->extra_fields, pool, 64); @@ -565,7 +565,7 @@ int auth_master_pass_lookup(struct auth_master_connection *conn, return 0; } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.conn = conn; ctx.return_value = -1; ctx.pool = pool; @@ -618,7 +618,7 @@ int auth_master_cache_flush(struct auth_master_connection *conn, struct auth_master_cache_ctx ctx; string_t *str; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.conn = conn; conn->reply_callback = auth_cache_flush_reply_callback; diff --git a/src/lib-auth/auth-server-connection.c b/src/lib-auth/auth-server-connection.c index 8453a3a61f..e3ab318c72 100644 --- a/src/lib-auth/auth-server-connection.c +++ b/src/lib-auth/auth-server-connection.c @@ -38,7 +38,7 @@ auth_server_input_mech(struct auth_server_connection *conn, return -1; } - memset(&mech_desc, 0, sizeof(mech_desc)); + i_zero(&mech_desc); mech_desc.name = p_strdup(conn->pool, args[0]); if (strcmp(mech_desc.name, "PLAIN") == 0) diff --git a/src/lib-dcrypt/dcrypt-gnutls.c b/src/lib-dcrypt/dcrypt-gnutls.c index 2aa87a1bfc..49d5364083 100644 --- a/src/lib-dcrypt/dcrypt-gnutls.c +++ b/src/lib-dcrypt/dcrypt-gnutls.c @@ -258,7 +258,7 @@ int dcrypt_gnutls_pbkdf2(const unsigned char *password, size_t password_len, con struct hmac_sha512_ctx ctx; hmac_sha512_set_key(&ctx, password_len, password); PBKDF2(&ctx, hmac_sha512_update, hmac_sha512_digest, 64, rounds, salt_len, salt, result_len, buf); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); } else { *error_r = "Unsupported algorithm"; return -1; diff --git a/src/lib-dcrypt/dcrypt.c b/src/lib-dcrypt/dcrypt.c index 148b8026a4..1463ff76d6 100644 --- a/src/lib-dcrypt/dcrypt.c +++ b/src/lib-dcrypt/dcrypt.c @@ -25,7 +25,7 @@ bool dcrypt_initialize(const char *backend, const struct dcrypt_settings *set, c const char *implementation = t_strconcat("dcrypt_",backend,NULL); - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; if (module_dir_try_load_missing(&dcrypt_module, set->module_dir, @@ -231,7 +231,7 @@ bool dcrypt_pbkdf2(const unsigned char *password, size_t password_len, const uns bool dcrypt_keypair_generate(struct dcrypt_keypair *pair_r, enum dcrypt_key_type kind, unsigned int bits, const char *curve, const char **error_r) { i_assert(dcrypt_vfs != NULL); - memset(pair_r, 0, sizeof(*pair_r)); + i_zero(pair_r); return dcrypt_vfs->generate_keypair(pair_r, kind, bits, curve, error_r); } diff --git a/src/lib-dcrypt/test-crypto.c b/src/lib-dcrypt/test-crypto.c index 47a4cfe760..a631983bcf 100644 --- a/src/lib-dcrypt/test-crypto.c +++ b/src/lib-dcrypt/test-crypto.c @@ -638,7 +638,7 @@ void test_get_info_pw_encrypted(void) { test_begin("test_get_info_pw_encrypted"); struct dcrypt_keypair p1; - memset(&p1, 0, sizeof(p1)); + i_zero(&p1); const char *error; bool ret = dcrypt_keypair_generate(&p1, DCRYPT_KEY_EC, 0, "secp521r1", &error); test_assert(ret == TRUE); diff --git a/src/lib-dict-extra/dict-fs.c b/src/lib-dict-extra/dict-fs.c index 86c67f4fcf..68739a381d 100644 --- a/src/lib-dict-extra/dict-fs.c +++ b/src/lib-dict-extra/dict-fs.c @@ -43,7 +43,7 @@ fs_dict_init(struct dict *driver, const char *uri, fs_args = p+1; } - memset(&fs_set, 0, sizeof(fs_set)); + i_zero(&fs_set); fs_set.username = set->username; fs_set.base_dir = set->base_dir; if (fs_init(fs_driver, fs_args, &fs_set, &fs, error_r) < 0) diff --git a/src/lib-dict/dict-client.c b/src/lib-dict/dict-client.c index b8c93ccedc..0d5f54c03f 100644 --- a/src/lib-dict/dict-client.c +++ b/src/lib-dict/dict-client.c @@ -928,7 +928,7 @@ client_dict_lookup_async_callback(struct client_dict_cmd *cmd, struct client_dict *dict = cmd->dict; struct dict_lookup_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); if (error != NULL) { result.ret = -1; result.error = error; @@ -1014,7 +1014,7 @@ static int client_dict_lookup(struct dict *_dict, pool_t pool, const char *key, { struct client_dict_sync_lookup lookup; - memset(&lookup, 0, sizeof(lookup)); + i_zero(&lookup); lookup.ret = -2; client_dict_lookup_async(_dict, key, client_dict_lookup_callback, &lookup); diff --git a/src/lib-dict/dict-db.c b/src/lib-dict/dict-db.c index 45eaf03e5c..db1426ea90 100644 --- a/src/lib-dict/dict-db.c +++ b/src/lib-dict/dict-db.c @@ -48,7 +48,7 @@ static int associate_key(DB *pdb ATTR_UNUSED, const DBT *pkey ATTR_UNUSED, const DBT *pdata, DBT *skey) { - memset(skey, 0, sizeof(*skey)); + i_zero(skey); skey->data = pdata->data; skey->size = pdata->size; return 0; @@ -267,9 +267,9 @@ static int db_dict_iterate_next(struct db_dict_iterate_context *ctx, DBT pkey, pdata, skey; int ret; - memset(&pkey, 0, sizeof(pkey)); - memset(&pdata, 0, sizeof(pdata)); - memset(&skey, 0, sizeof(skey)); + i_zero(&pkey); + i_zero(&pdata); + i_zero(&skey); if ((ctx->flags & DICT_ITERATE_FLAG_SORT_BY_VALUE) != 0) { while ((ret = ctx->cursor->c_pget(ctx->cursor, &skey, @@ -417,8 +417,8 @@ static void db_dict_set(struct dict_transaction_context *_ctx, struct db_dict *dict = (struct db_dict *)_ctx->dict; DBT dkey, ddata; - memset(&dkey, 0, sizeof(dkey)); - memset(&ddata, 0, sizeof(ddata)); + i_zero(&dkey); + i_zero(&ddata); dkey.data = (char *)key; dkey.size = strlen(key); @@ -448,7 +448,7 @@ static void db_dict_unset(struct dict_transaction_context *_ctx, struct db_dict *dict = (struct db_dict *)_ctx->dict; DBT dkey; - memset(&dkey, 0, sizeof(dkey)); + i_zero(&dkey); dkey.data = (char *)key; dkey.size = strlen(key); diff --git a/src/lib-dict/dict-memcached-ascii.c b/src/lib-dict/dict-memcached-ascii.c index efcabd9f1a..270fa29ddf 100644 --- a/src/lib-dict/dict-memcached-ascii.c +++ b/src/lib-dict/dict-memcached-ascii.c @@ -627,7 +627,7 @@ memcached_ascii_transaction_commit(struct dict_transaction_context *_ctx, int ret = 1; if (_ctx->changed) { - memset(&commit_ctx, 0, sizeof(commit_ctx)); + i_zero(&commit_ctx); commit_ctx.dict = dict; commit_ctx.memctx = ctx; commit_ctx.callback = callback; diff --git a/src/lib-dict/dict-memcached.c b/src/lib-dict/dict-memcached.c index 21bed8fd15..4636f7bd99 100644 --- a/src/lib-dict/dict-memcached.c +++ b/src/lib-dict/dict-memcached.c @@ -320,7 +320,7 @@ memcached_dict_lookup_real(struct memcached_dict *dict, pool_t pool, dict->conn.cmd->data, dict->conn.cmd->used); - memset(&dict->conn.reply, 0, sizeof(dict->conn.reply)); + i_zero(&dict->conn.reply); io_loop_run(dict->ioloop); } timeout_remove(&to); diff --git a/src/lib-dict/dict-sql-settings.c b/src/lib-dict/dict-sql-settings.c index 1c4dd82b2f..610456dd2c 100644 --- a/src/lib-dict/dict-sql-settings.c +++ b/src/lib-dict/dict-sql-settings.c @@ -158,7 +158,7 @@ static const char *dict_sql_map_finish(struct setting_parser_ctx *ctx) return "Missing fields for pattern variables"; } array_append(&ctx->set->maps, &ctx->cur_map, 1); - memset(&ctx->cur_map, 0, sizeof(ctx->cur_map)); + i_zero(&ctx->cur_map); return NULL; } @@ -259,7 +259,7 @@ dict_sql_settings_read(const char *path, const char **error_r) if (cache != NULL) return cache->set; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); pool = pool_alloconly_create("dict sql settings", 1024); ctx.pool = pool; ctx.set = p_new(pool, struct dict_sql_settings, 1); diff --git a/src/lib-dict/dict-sql.c b/src/lib-dict/dict-sql.c index 9bea97f1f8..c557c0acc8 100644 --- a/src/lib-dict/dict-sql.c +++ b/src/lib-dict/dict-sql.c @@ -475,7 +475,7 @@ sql_dict_lookup_async_callback(struct sql_result *sql_result, { struct dict_lookup_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); result.ret = sql_result_next_row(sql_result); if (result.ret < 0) result.error = sql_result_get_error(sql_result); @@ -509,7 +509,7 @@ sql_dict_lookup_async(struct dict *_dict, const char *key, if (sql_lookup_get_query(dict, key, query, &map, &error) < 0) { struct dict_lookup_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); result.ret = -1; result.error = error; callback(&result, context); @@ -1070,7 +1070,7 @@ static void sql_dict_set(struct dict_transaction_context *_ctx, field.map = map; field.value = value; - memset(&build, 0, sizeof(build)); + i_zero(&build); build.dict = dict; t_array_init(&build.fields, 1); array_append(&build.fields, &field, 1); @@ -1166,7 +1166,7 @@ static void sql_dict_atomic_inc_real(struct sql_dict_transaction_context *ctx, field.map = map; field.value = t_strdup_printf("%lld", diff); - memset(&build, 0, sizeof(build)); + i_zero(&build); build.dict = dict; t_array_init(&build.fields, 1); array_append(&build.fields, &field, 1); @@ -1261,7 +1261,7 @@ static void sql_dict_atomic_inc(struct dict_transaction_context *_ctx, struct dict_sql_build_query_field *field; const char *query, *error; - memset(&build, 0, sizeof(build)); + i_zero(&build); build.dict = dict; t_array_init(&build.fields, 1); build.extra_values = &values; diff --git a/src/lib-dict/dict.c b/src/lib-dict/dict.c index 6e947e6cab..a7bc6bb0c1 100644 --- a/src/lib-dict/dict.c +++ b/src/lib-dict/dict.c @@ -58,7 +58,7 @@ int dict_init(const char *uri, enum dict_data_type value_type, { struct dict_settings set; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.value_type = value_type; set.username = username; set.base_dir = base_dir; @@ -133,7 +133,7 @@ void dict_lookup_async(struct dict *dict, const char *key, if (dict->v.lookup_async == NULL) { struct dict_lookup_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); result.ret = dict_lookup(dict, pool_datastack_create(), key, &result.value); if (result.ret < 0) diff --git a/src/lib-dns/dns-lookup.c b/src/lib-dns/dns-lookup.c index b6dc0da714..a7835e9b22 100644 --- a/src/lib-dns/dns-lookup.c +++ b/src/lib-dns/dns-lookup.c @@ -71,7 +71,7 @@ static void dns_client_disconnect(struct dns_client *client, const char *error) client->fd = -1; } - memset(&result, 0, sizeof(result)); + i_zero(&result); result.ret = EAI_FAIL; result.error = error; @@ -339,7 +339,7 @@ dns_client_lookup_common(struct dns_client *client, struct dns_lookup_result result; int ret; - memset(&result, 0, sizeof(result)); + i_zero(&result); result.ret = EAI_FAIL; if ((ret = dns_client_send_request(client, cmd, &result.error)) <= 0) { diff --git a/src/lib-fs/fs-api.c b/src/lib-fs/fs-api.c index f181f3b11b..a03cc1e33d 100644 --- a/src/lib-fs/fs-api.c +++ b/src/lib-fs/fs-api.c @@ -110,7 +110,7 @@ static void fs_class_try_load_plugin(const char *driver) struct module_dir_load_settings mod_set; const struct fs *fs_class; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.ignore_missing = TRUE; diff --git a/src/lib-fs/fs-dict.c b/src/lib-fs/fs-dict.c index c18d3b3e01..0fca51be34 100644 --- a/src/lib-fs/fs-dict.c +++ b/src/lib-fs/fs-dict.c @@ -69,7 +69,7 @@ fs_dict_init(struct fs *_fs, const char *args, const struct fs_settings *set) return -1; } - memset(&dict_set, 0, sizeof(dict_set)); + i_zero(&dict_set); dict_set.username = set->username; dict_set.base_dir = set->base_dir; @@ -243,7 +243,7 @@ static int fs_dict_stat(struct fs_file *_file, struct stat *st_r) { struct dict_fs_file *file = (struct dict_fs_file *)_file; - memset(st_r, 0, sizeof(*st_r)); + i_zero(st_r); if (fs_dict_lookup(file) < 0) return -1; diff --git a/src/lib-fs/fs-posix.c b/src/lib-fs/fs-posix.c index 236cf21ce1..29d184078f 100644 --- a/src/lib-fs/fs-posix.c +++ b/src/lib-fs/fs-posix.c @@ -600,7 +600,7 @@ fs_posix_lock(struct fs_file *_file, unsigned int secs, struct fs_lock **lock_r) struct posix_fs_lock fs_lock, *ret_lock; int ret = -1; - memset(&fs_lock, 0, sizeof(fs_lock)); + i_zero(&fs_lock); fs_lock.lock.file = _file; switch (fs->lock_method) { @@ -625,7 +625,7 @@ fs_posix_lock(struct fs_file *_file, unsigned int secs, struct fs_lock **lock_r) #endif break; case FS_POSIX_LOCK_METHOD_DOTLOCK: - memset(&dotlock_set, 0, sizeof(dotlock_set)); + i_zero(&dotlock_set); dotlock_set.stale_timeout = FS_POSIX_DOTLOCK_STALE_TIMEOUT_SECS; dotlock_set.use_excl_lock = TRUE; dotlock_set.timeout = secs; diff --git a/src/lib-fs/fs-test-async.c b/src/lib-fs/fs-test-async.c index 2a73a74c76..d66d3f9668 100644 --- a/src/lib-fs/fs-test-async.c +++ b/src/lib-fs/fs-test-async.c @@ -83,7 +83,7 @@ void test_fs_async(const char *test_name, enum fs_properties properties, struct test_fs *test_fs; const char *error; - memset(&fs_set, 0, sizeof(fs_set)); + i_zero(&fs_set); if (fs_init(driver, args, &fs_set, &fs, &error) < 0) i_fatal("fs_init() failed: %s", error); diff --git a/src/lib-fs/fs-test.c b/src/lib-fs/fs-test.c index 05a580d582..b044fd99f4 100644 --- a/src/lib-fs/fs-test.c +++ b/src/lib-fs/fs-test.c @@ -235,7 +235,7 @@ static int fs_test_stat(struct fs_file *_file, struct stat *st_r) errno = ENOENT; return -1; } - memset(st_r, 0, sizeof(*st_r)); + i_zero(st_r); st_r->st_size = file->contents->used; return 0; } diff --git a/src/lib-fts/fts-icu.c b/src/lib-fts/fts-icu.c index 327e9e2993..f5a95ca8ef 100644 --- a/src/lib-fts/fts-icu.c +++ b/src/lib-fts/fts-icu.c @@ -175,7 +175,7 @@ int fts_icu_transliterator_create(const char *id, UParseError perr; buffer_t *id_utf16_buf = buffer_create_dynamic(pool_datastack_create(), 2 * strlen(id)); UChar *id_utf16; - memset(&perr, 0, sizeof(perr)); + i_zero(&perr); fts_icu_utf8_to_utf16(id_utf16_buf, id); id_utf16 = (UChar *)str_c(id_utf16_buf); diff --git a/src/lib-http/http-auth.c b/src/lib-http/http-auth.c index bc54d8a2c6..18852efd84 100644 --- a/src/lib-http/http-auth.c +++ b/src/lib-http/http-auth.c @@ -96,7 +96,7 @@ http_parse_auth_params(struct http_parser *parser, unsigned int count = 0; int ret; - memset(¶m, 0, sizeof(param)); + i_zero(¶m); while ((ret=http_parse_auth_param (parser, ¶m.name, ¶m.value)) > 0) { if (!array_is_created(params)) @@ -149,7 +149,7 @@ int http_auth_parse_challenges(const unsigned char *data, size_t size, for (;;) { struct http_auth_challenge chlng; - memset(&chlng, 0, sizeof(chlng)); + i_zero(&chlng); /* auth-scheme */ if ((ret=http_parse_token(&parser, &chlng.scheme)) <= 0) { @@ -208,7 +208,7 @@ int http_auth_parse_credentials(const unsigned char *data, size_t size, auth-scheme = token */ - memset(crdts, 0, sizeof(*crdts)); + i_zero(crdts); /* auth-scheme */ if (http_parse_token(&parser, &crdts->scheme) <= 0) @@ -382,7 +382,7 @@ http_auth_params_clone(pool_t pool, array_foreach(src, sparam) { struct http_auth_param nparam; - memset(&nparam, 0, sizeof(nparam)); + i_zero(&nparam); nparam.name = p_strdup(pool, sparam->name); nparam.value = p_strdup(pool, sparam->value); @@ -443,12 +443,12 @@ http_auth_credentials_clone(pool_t pool, void http_auth_basic_challenge_init(struct http_auth_challenge *chlng, const char *realm) { - memset(chlng, 0, sizeof(*chlng)); + i_zero(chlng); chlng->scheme = "Basic"; if (realm != NULL) { struct http_auth_param param; - memset(¶m, 0, sizeof(param)); + i_zero(¶m); param.name = "realm"; param.value = t_strdup(realm); @@ -470,7 +470,7 @@ void http_auth_basic_credentials_init(struct http_auth_credentials *crdts, auth = t_strconcat(username, ":", password, NULL); base64_encode(auth, strlen(auth), data); - memset(crdts, 0, sizeof(*crdts)); + i_zero(crdts); crdts->scheme = "Basic"; crdts->data = str_c(data); } diff --git a/src/lib-http/http-client-connection.c b/src/lib-http/http-client-connection.c index 4f0e877510..16ed4436e9 100644 --- a/src/lib-http/http-client-connection.c +++ b/src/lib-http/http-client-connection.c @@ -1114,7 +1114,7 @@ http_client_connection_start_tunnel(struct http_client_connection **_conn, i_assert(conn->tunneling); /* claim connection streams */ - memset(tunnel, 0, sizeof(*tunnel)); + i_zero(tunnel); tunnel->input = conn->conn.input; tunnel->output = conn->conn.output; tunnel->fd_in = conn->conn.fd_in; @@ -1165,7 +1165,7 @@ http_client_connection_ready(struct http_client_connection *conn) http_client_request_ref(req); conn->tunneling = TRUE; - memset(&response, 0, sizeof(response)); + i_zero(&response); response.status = 200; response.reason = "OK"; @@ -1214,7 +1214,7 @@ http_client_connection_ssl_init(struct http_client_connection *conn, i_assert(conn->client->ssl_ctx != NULL); - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); if (!conn->client->set.ssl_allow_invalid_cert) { ssl_set.verbose_invalid_cert = TRUE; ssl_set.verify_remote_cert = TRUE; diff --git a/src/lib-http/http-client-host.c b/src/lib-http/http-client-host.c index 0e91852ff2..c2cc018927 100644 --- a/src/lib-http/http-client-host.c +++ b/src/lib-http/http-client-host.c @@ -118,7 +118,7 @@ static void http_client_host_lookup } else if (client->set.dns_client_socket_path != NULL) { http_client_host_debug(host, "Performing asynchronous DNS lookup"); - memset(&dns_set, 0, sizeof(dns_set)); + i_zero(&dns_set); dns_set.dns_client_socket_path = client->set.dns_client_socket_path; if (client->set.connect_timeout_msecs > 0) diff --git a/src/lib-http/http-client-request.c b/src/lib-http/http-client-request.c index 2ac941c01a..827b21d710 100644 --- a/src/lib-http/http-client-request.c +++ b/src/lib-http/http-client-request.c @@ -669,7 +669,7 @@ http_client_request_get_peer_addr(const struct http_client_request *req, /* the IP address may be unassigned in the returned peer address, since that is only available at this stage when the target URL has an explicit IP address. */ - memset(addr, 0, sizeof(*addr)); + i_zero(addr); if (host_socket != NULL) { addr->type = HTTP_CLIENT_PEER_ADDR_UNIX; addr->a.un.path = host_socket; diff --git a/src/lib-http/http-client.c b/src/lib-http/http-client.c index 13420fb9f3..978e3d4c10 100644 --- a/src/lib-http/http-client.c +++ b/src/lib-http/http-client.c @@ -289,7 +289,7 @@ int http_client_init_ssl_ctx(struct http_client *client, const char **error_r) if (client->ssl_ctx != NULL) return 0; - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.ca_dir = client->set.ssl_ca_dir; ssl_set.ca_file = client->set.ssl_ca_file; ssl_set.ca = client->set.ssl_ca; diff --git a/src/lib-http/http-date.c b/src/lib-http/http-date.c index 896ebb3036..eceb73e1d9 100644 --- a/src/lib-http/http-date.c +++ b/src/lib-http/http-date.c @@ -434,7 +434,7 @@ bool http_date_parse(const unsigned char *data, size_t size, struct http_date_parser parser; time_t timestamp; - memset(&parser, 0, sizeof(parser)); + i_zero(&parser); parser.cur = data; parser.end = data + size; diff --git a/src/lib-http/http-message-parser.c b/src/lib-http/http-message-parser.c index b0e1724075..ed44f304dc 100644 --- a/src/lib-http/http-message-parser.c +++ b/src/lib-http/http-message-parser.c @@ -18,7 +18,7 @@ void http_message_parser_init(struct http_message_parser *parser, struct istream *input, const struct http_header_limits *hdr_limits, uoff_t max_payload_size, bool lenient) { - memset(parser, 0, sizeof(*parser)); + i_zero(parser); parser->input = input; i_stream_ref(parser->input); if (hdr_limits != NULL) @@ -53,7 +53,7 @@ void http_message_parser_restart(struct http_message_parser *parser, if (parser->msg.pool != NULL) pool_unref(&parser->msg.pool); - memset(&parser->msg, 0, sizeof(parser->msg)); + i_zero(&parser->msg); if (pool == NULL) { parser->msg.pool = pool_alloconly_create("http_message", 4096); } else { diff --git a/src/lib-http/http-parser.c b/src/lib-http/http-parser.c index 4aaf368e76..65b1b685b5 100644 --- a/src/lib-http/http-parser.c +++ b/src/lib-http/http-parser.c @@ -74,7 +74,7 @@ const unsigned char _http_char_lookup[256] = { void http_parser_init(struct http_parser *parser, const unsigned char *data, size_t size) { - memset(parser, 0, sizeof(*parser)); + i_zero(parser); parser->begin = data; parser->cur = data; parser->end = data + size; diff --git a/src/lib-http/http-request-parser.c b/src/lib-http/http-request-parser.c index cdae246ef8..883c65debb 100644 --- a/src/lib-http/http-request-parser.c +++ b/src/lib-http/http-request-parser.c @@ -49,7 +49,7 @@ http_request_parser_init(struct istream *input, hdr_limits = limits->header; max_payload_size = limits->max_payload_size; } else { - memset(&hdr_limits, 0, sizeof(hdr_limits)); + i_zero(&hdr_limits); max_payload_size = 0; } @@ -572,7 +572,7 @@ int http_request_parse_next(struct http_request_parser *parser, return -1; } - memset(request, 0, sizeof(*request)); + i_zero(request); if (http_url_request_target_parse(parser->request_target, hdr->value, parser->parser.msg.pool, &request->target, &error) < 0) { diff --git a/src/lib-http/http-response-parser.c b/src/lib-http/http-response-parser.c index 52aeda61f8..3c08316327 100644 --- a/src/lib-http/http-response-parser.c +++ b/src/lib-http/http-response-parser.c @@ -385,7 +385,7 @@ int http_response_parse_next(struct http_response_parser *parser, parser->state = HTTP_RESPONSE_PARSE_STATE_INIT; - memset(response, 0, sizeof(*response)); + i_zero(response); response->status = parser->response_status; response->reason = parser->response_reason; response->version_major = parser->parser.msg.version_major; diff --git a/src/lib-http/http-response.c b/src/lib-http/http-response.c index 666bdcbcdd..e255a6bbb0 100644 --- a/src/lib-http/http-response.c +++ b/src/lib-http/http-response.c @@ -11,7 +11,7 @@ void http_response_init(struct http_response *resp, unsigned int status, const char *reason) { - memset(resp, 0, sizeof(*resp)); + i_zero(resp); resp->version_major = 1; resp->version_minor = 1; resp->date = ioloop_time; diff --git a/src/lib-http/http-server-connection.c b/src/lib-http/http-server-connection.c index 8fd0a0b70e..610773f94c 100644 --- a/src/lib-http/http-server-connection.c +++ b/src/lib-http/http-server-connection.c @@ -1219,7 +1219,7 @@ void http_server_connection_tunnel(struct http_server_connection **_conn, /* preserve statistics */ http_server_connection_update_stats(conn); - memset(&tunnel, 0, sizeof(tunnel)); + i_zero(&tunnel); tunnel.input = conn->conn.input; tunnel.output = conn->conn.output; tunnel.fd_in = conn->conn.fd_in; diff --git a/src/lib-http/http-server-response.c b/src/lib-http/http-server-response.c index aa976640a6..a21049003e 100644 --- a/src/lib-http/http-server-response.c +++ b/src/lib-http/http-server-response.c @@ -59,7 +59,7 @@ http_server_response_create(struct http_server_request *req, resp = req->response; i_assert(!resp->submitted); http_server_response_free(resp); - memset(resp, 0, sizeof(*resp)); + i_zero(resp); } resp->request = req; @@ -327,7 +327,7 @@ http_server_response_output_payload( http_server_request_ref(req); resp->payload_blocking = TRUE; - memset(&rpay, 0, sizeof(rpay)); + i_zero(&rpay); rpay.resp = resp; if (iov == NULL) { @@ -428,7 +428,7 @@ int http_server_response_send_payload(struct http_server_response **_resp, i_assert(data != NULL); - memset(&iov, 0, sizeof(iov)); + i_zero(&iov); iov.iov_base = data; iov.iov_len = size; ret = http_server_response_output_payload(&resp, &iov, 1); diff --git a/src/lib-http/http-url.c b/src/lib-http/http-url.c index 5eca4bf1aa..c768e2cea0 100644 --- a/src/lib-http/http-url.c +++ b/src/lib-http/http-url.c @@ -392,7 +392,7 @@ int http_url_request_target_parse(const char *request_target, return 0; } - memset(&base, 0, sizeof(base)); + i_zero(&base); base.host_name = host.host_literal; base.host_ip = host.host_ip; base.port = host.port; @@ -425,7 +425,7 @@ int http_url_request_target_parse(const char *request_target, void http_url_copy_authority(pool_t pool, struct http_url *dest, const struct http_url *src) { - memset(dest, 0, sizeof(*dest)); + i_zero(dest); dest->host_name = p_strdup(pool, src->host_name); if (src->have_host_ip) { dest->host_ip = src->host_ip; diff --git a/src/lib-http/test-http-auth.c b/src/lib-http/test-http-auth.c index 7b6c7a22c4..b5f2c65466 100644 --- a/src/lib-http/test-http-auth.c +++ b/src/lib-http/test-http-auth.c @@ -97,7 +97,7 @@ static void test_http_auth_challenges_valid(void) test_begin(t_strdup_printf("http auth challenges valid [%d]", i)); - memset(&out, 0, sizeof(out)); + i_zero(&out); result = (http_auth_parse_challenges ((const unsigned char *)challenges_in, strlen(challenges_in), &out) > 0); diff --git a/src/lib-http/test-http-client-errors.c b/src/lib-http/test-http-client-errors.c index 56dd7013ef..4a150af9f8 100644 --- a/src/lib-http/test-http-client-errors.c +++ b/src/lib-http/test-http-client-errors.c @@ -2493,7 +2493,7 @@ static void test_client_defaults(struct http_client_settings *http_set) { /* client settings */ - memset(http_set, 0, sizeof(*http_set)); + i_zero(http_set); http_set->max_idle_time_msecs = 5*1000; http_set->max_parallel_connections = 1; http_set->max_pipelined_requests = 1; @@ -2797,7 +2797,7 @@ int main(int argc, char *argv[]) } /* listen on localhost */ - memset(&bind_ip, 0, sizeof(bind_ip)); + i_zero(&bind_ip); bind_ip.family = AF_INET; bind_ip.u.ip4.s_addr = htonl(INADDR_LOOPBACK); diff --git a/src/lib-http/test-http-client.c b/src/lib-http/test-http-client.c index 04d51d64f3..0fd58be191 100644 --- a/src/lib-http/test-http-client.c +++ b/src/lib-http/test-http-client.c @@ -351,7 +351,7 @@ int main(int argc, char *argv[]) the binary in all systems (but is in others! so linking safe-memset.lo directly causes them to fail.) If safe_memset() isn't included, libssl-iostream plugin loading fails. */ - safe_memset(&dns_set, 0, sizeof(dns_set)); + i_zero_safe(&dns_set); dns_set.dns_client_socket_path = "/var/run/dovecot/dns-client"; dns_set.timeout_msecs = 30*1000; dns_set.idle_timeout_msecs = UINT_MAX; @@ -360,7 +360,7 @@ int main(int argc, char *argv[]) if (dns_client_connect(dns_client, &error) < 0) i_fatal("Couldn't initialize DNS client: %s", error); - memset(&http_set, 0, sizeof(http_set)); + i_zero(&http_set); http_set.dns_client = dns_client; http_set.ssl_allow_invalid_cert = TRUE; http_set.ssl_ca_dir = "/etc/ssl/certs"; /* debian */ diff --git a/src/lib-http/test-http-payload.c b/src/lib-http/test-http-payload.c index 3052d94de4..5eefdedde1 100644 --- a/src/lib-http/test-http-payload.c +++ b/src/lib-http/test-http-payload.c @@ -1255,13 +1255,13 @@ static void test_run_sequential( /* download files from blocking server */ /* server settings */ - memset(&http_server_set, 0, sizeof(http_server_set)); + i_zero(&http_server_set); http_server_set.max_pipelined_requests = 0; http_server_set.debug = debug; http_server_set.request_limits.max_payload_size = (uoff_t)-1; /* client settings */ - memset(&http_client_set, 0, sizeof(http_client_set)); + i_zero(&http_client_set); http_client_set.max_idle_time_msecs = 5*1000; http_client_set.max_parallel_connections = 1; http_client_set.max_pipelined_requests = 1; @@ -1286,13 +1286,13 @@ static void test_run_pipeline( /* download files from blocking server */ /* server settings */ - memset(&http_server_set, 0, sizeof(http_server_set)); + i_zero(&http_server_set); http_server_set.max_pipelined_requests = 4; http_server_set.debug = debug; http_server_set.request_limits.max_payload_size = (uoff_t)-1; /* client settings */ - memset(&http_client_set, 0, sizeof(http_client_set)); + i_zero(&http_client_set); http_client_set.max_idle_time_msecs = 5*1000; http_client_set.max_parallel_connections = 1; http_client_set.max_pipelined_requests = 8; @@ -1317,13 +1317,13 @@ static void test_run_parallel( /* download files from blocking server */ /* server settings */ - memset(&http_server_set, 0, sizeof(http_server_set)); + i_zero(&http_server_set); http_server_set.max_pipelined_requests = 4; http_server_set.debug = debug; http_server_set.request_limits.max_payload_size = (uoff_t)-1; /* client settings */ - memset(&http_client_set, 0, sizeof(http_client_set)); + i_zero(&http_client_set); http_client_set.max_idle_time_msecs = 5*1000; http_client_set.max_parallel_connections = 40; http_client_set.max_pipelined_requests = 8; @@ -1552,7 +1552,7 @@ int main(int argc, char *argv[]) } /* listen on localhost */ - memset(&bind_ip, 0, sizeof(bind_ip)); + i_zero(&bind_ip); bind_ip.family = AF_INET; bind_ip.u.ip4.s_addr = htonl(INADDR_LOOPBACK); diff --git a/src/lib-http/test-http-response-parser.c b/src/lib-http/test-http-response-parser.c index 7d2c11dbd3..bb3a56b523 100644 --- a/src/lib-http/test-http-response-parser.c +++ b/src/lib-http/test-http-response-parser.c @@ -104,7 +104,7 @@ static void test_http_response_parse_valid(void) unsigned int pos, response_text_len; int ret = 0; - memset(&response, 0, sizeof(response)); + i_zero(&response); test = &valid_response_parse_tests[i]; response_text = test->response; response_text_len = strlen(response_text); diff --git a/src/lib-http/test-http-server-errors.c b/src/lib-http/test-http-server-errors.c index 9c432ce3c6..cf3312e450 100644 --- a/src/lib-http/test-http-server-errors.c +++ b/src/lib-http/test-http-server-errors.c @@ -541,7 +541,7 @@ static void test_server_defaults(struct http_server_settings *http_set) { /* server settings */ - memset(http_set, 0, sizeof(*http_set)); + i_zero(http_set); http_set->max_client_idle_time_msecs = 5*1000; http_set->max_pipelined_requests = 1; http_set->debug = debug; @@ -746,7 +746,7 @@ int main(int argc, char *argv[]) } /* listen on localhost */ - memset(&bind_ip, 0, sizeof(bind_ip)); + i_zero(&bind_ip); bind_ip.family = AF_INET; bind_ip.u.ip4.s_addr = htonl(INADDR_LOOPBACK); diff --git a/src/lib-http/test-http-server.c b/src/lib-http/test-http-server.c index 8721b0bee3..84540767c8 100644 --- a/src/lib-http/test-http-server.c +++ b/src/lib-http/test-http-server.c @@ -83,7 +83,7 @@ static void client_init(int fd) struct client *client; struct http_request_limits req_limits; - memset(&req_limits, 0, sizeof(req_limits)); + i_zero(&req_limits); req_limits.max_target_length = 4096; client = i_new(struct client, 1); diff --git a/src/lib-imap-client/imapc-client.c b/src/lib-imap-client/imapc-client.c index 46bc38d196..06273379f7 100644 --- a/src/lib-imap-client/imapc-client.c +++ b/src/lib-imap-client/imapc-client.c @@ -86,7 +86,7 @@ imapc_client_init(const struct imapc_client_settings *set) client->set.ssl_ca_file = p_strdup(pool, set->ssl_ca_file); client->set.ssl_verify = set->ssl_verify; - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.ca_dir = set->ssl_ca_dir; ssl_set.ca_file = set->ssl_ca_file; ssl_set.verify_remote_cert = set->ssl_verify; diff --git a/src/lib-imap-client/imapc-connection.c b/src/lib-imap-client/imapc-connection.c index 6a352e7abf..2f147f3ee1 100644 --- a/src/lib-imap-client/imapc-connection.c +++ b/src/lib-imap-client/imapc-connection.c @@ -290,7 +290,7 @@ void imapc_connection_abort_commands(struct imapc_connection *conn, /* abort the commands. we'll do it here later so that if the callback recurses us back here we don't crash */ - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.state = IMAPC_COMMAND_STATE_DISCONNECTED; reply.text_without_resp = reply.text_full = "Disconnected from server"; @@ -328,7 +328,7 @@ static void imapc_connection_set_state(struct imapc_connection *conn, switch (state) { case IMAPC_CONNECTION_STATE_DISCONNECTED: - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.state = IMAPC_COMMAND_STATE_DISCONNECTED; reply.text_full = "Disconnected from server"; if (conn->disconnect_reason != NULL) { @@ -372,7 +372,7 @@ imapc_connection_literal_reset(struct imapc_connection_literal *literal) } i_free_and_null(literal->temp_path); - memset(literal, 0, sizeof(*literal)); + i_zero(literal); literal->fd = -1; } @@ -941,7 +941,7 @@ static void imapc_connection_authenticate(struct imapc_connection *conn) return; } - memset(&sasl_set, 0, sizeof(sasl_set)); + i_zero(&sasl_set); if (set->master_user == NULL) sasl_set.authid = set->username; else { @@ -1122,7 +1122,7 @@ static int imapc_connection_input_untagged(struct imapc_connection *conn) } imap_args++; } - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); if (strcasecmp(name, "OK") == 0) { if (imapc_connection_handle_imap_resp_text(conn, imap_args, @@ -1185,7 +1185,7 @@ static int imapc_connection_input_plus(struct imapc_connection *conn) /* continue AUTHENTICATE */ struct imapc_command_reply reply; - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.state = (enum imapc_command_state)IMAPC_COMMAND_STATE_AUTHENTICATE_CONTINUE; reply.text_full = line; cmds[0]->callback(&reply, cmds[0]->context); @@ -1287,7 +1287,7 @@ static int imapc_connection_input_tagged(struct imapc_connection *conn) /* make sure reply texts stays valid if input stream gets freed */ line = t_strdup_noconst(line); - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); linep = strchr(line, ' '); if (linep == NULL) @@ -1516,7 +1516,7 @@ static int imapc_connection_ssl_init(struct imapc_connection *conn) return -1; } - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); if (conn->client->set.ssl_verify) { ssl_set.verbose_invalid_cert = TRUE; ssl_set.verify_remote_cert = TRUE; @@ -1747,7 +1747,7 @@ void imapc_connection_connect(struct imapc_connection *conn, (long)conn->last_connect); } - memset(&dns_set, 0, sizeof(dns_set)); + i_zero(&dns_set); dns_set.dns_client_socket_path = conn->client->set.dns_client_socket_path; dns_set.timeout_msecs = conn->client->set.connect_timeout_msecs; @@ -2031,7 +2031,7 @@ static void imapc_command_send_more(struct imapc_connection *conn) return; } /* shouldn't normally happen */ - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.text_without_resp = reply.text_full = "Mailbox not open"; reply.state = IMAPC_COMMAND_STATE_DISCONNECTED; diff --git a/src/lib-imap-storage/imap-metadata.c b/src/lib-imap-storage/imap-metadata.c index 15330f9b36..28f7eaca4c 100644 --- a/src/lib-imap-storage/imap-metadata.c +++ b/src/lib-imap-storage/imap-metadata.c @@ -149,7 +149,7 @@ int imap_metadata_unset(struct imap_metadata_transaction *imtrans, { struct mail_attribute_value value; - memset(&value, 0, sizeof(value)); + i_zero(&value); return imap_metadata_set(imtrans, entry, &value); } @@ -159,7 +159,7 @@ int imap_metadata_get(struct imap_metadata_transaction *imtrans, enum mail_attribute_type type; const char *key; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); if (!imap_metadata_entry2key(imtrans, entry, &type, &key)) return 0; if (imap_metadata_get_mailbox_transaction(imtrans) < 0) @@ -173,7 +173,7 @@ int imap_metadata_get_stream(struct imap_metadata_transaction *imtrans, enum mail_attribute_type type; const char *key; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); if (!imap_metadata_entry2key(imtrans, entry, &type, &key)) return 0; if (imap_metadata_get_mailbox_transaction(imtrans) < 0) diff --git a/src/lib-imap-storage/imap-msgpart-url.c b/src/lib-imap-storage/imap-msgpart-url.c index 5afb15c38e..e2b417df78 100644 --- a/src/lib-imap-storage/imap-msgpart-url.c +++ b/src/lib-imap-storage/imap-msgpart-url.c @@ -74,7 +74,7 @@ int imap_msgpart_url_parse(struct mail_user *user, struct mailbox *selected_box, const char *error; /* build base url */ - memset(&base_url, 0, sizeof(base_url)); + i_zero(&base_url); if (selected_box != NULL) { mailbox_get_open_status(selected_box, STATUS_UIDVALIDITY, &box_status); diff --git a/src/lib-imap-storage/imap-msgpart.c b/src/lib-imap-storage/imap-msgpart.c index 9ec7db17c4..007fa17115 100644 --- a/src/lib-imap-storage/imap-msgpart.c +++ b/src/lib-imap-storage/imap-msgpart.c @@ -570,9 +570,9 @@ imap_msgpart_open_normal(struct mail *mail, struct imap_msgpart *msgpart, struct istream *input = NULL; bool unknown_crlfs = FALSE; - memset(&hdr_size, 0, sizeof(hdr_size)); - memset(&body_size, 0, sizeof(body_size)); - memset(&part_size, 0, sizeof(part_size)); + i_zero(&hdr_size); + i_zero(&body_size); + i_zero(&part_size); if (*msgpart->section_number != '\0') { /* find the MIME part */ @@ -671,7 +671,7 @@ int imap_msgpart_open(struct mail *mail, struct imap_msgpart *msgpart, bool include_hdr, binary, use_partial_cache, have_crlfs; int ret; - memset(result_r, 0, sizeof(*result_r)); + i_zero(result_r); if ((ret = imap_msgpart_find_part(mail, msgpart, &part)) < 0) return -1; diff --git a/src/lib-imap-urlauth/imap-urlauth-backend.c b/src/lib-imap-urlauth/imap-urlauth-backend.c index c935453286..f7124eb647 100644 --- a/src/lib-imap-urlauth/imap-urlauth-backend.c +++ b/src/lib-imap-urlauth/imap-urlauth-backend.c @@ -47,7 +47,7 @@ imap_urlauth_backend_trans_get_mailbox_key(struct mailbox_transaction_context *t random_fill(mailbox_key_r, IMAP_URLAUTH_KEY_LEN); mailbox_key_hex = binary_to_hex(mailbox_key_r, IMAP_URLAUTH_KEY_LEN); - memset(&urlauth_key, 0, sizeof(urlauth_key)); + i_zero(&urlauth_key); urlauth_key.value = mailbox_key_hex; ret = mailbox_attribute_set(trans, MAIL_ATTRIBUTE_TYPE_PRIVATE, IMAP_URLAUTH_KEY, &urlauth_key); diff --git a/src/lib-imap-urlauth/imap-urlauth-connection.c b/src/lib-imap-urlauth/imap-urlauth-connection.c index b97aaf3b1b..a962e732e4 100644 --- a/src/lib-imap-urlauth/imap-urlauth-connection.c +++ b/src/lib-imap-urlauth/imap-urlauth-connection.c @@ -360,7 +360,7 @@ imap_urlauth_request_fail(struct imap_urlauth_connection *conn, callback = urlreq->callback; urlreq->callback = NULL; if (callback != NULL) { - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.url = urlreq->url; reply.flags = urlreq->flags; reply.succeeded = FALSE; @@ -648,7 +648,7 @@ imap_urlauth_connection_read_literal(struct imap_urlauth_connection *conn) i_assert(conn->literal_bytes_left == 0); /* reply */ - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.url = urlreq->url; reply.flags = urlreq->flags; reply.bodypartstruct = urlreq->bodypartstruct; diff --git a/src/lib-imap-urlauth/imap-urlauth-fetch.c b/src/lib-imap-urlauth/imap-urlauth-fetch.c index c72cbfcbdc..e24d09ea55 100644 --- a/src/lib-imap-urlauth/imap-urlauth-fetch.c +++ b/src/lib-imap-urlauth/imap-urlauth-fetch.c @@ -150,7 +150,7 @@ imap_urlauth_fetch_error(struct imap_urlauth_fetch *ufetch, const char *url, ufetch->pending_requests--; - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.url = url; reply.flags = url_flags; reply.succeeded = FALSE; @@ -226,7 +226,7 @@ imap_urlauth_fetch_local(struct imap_urlauth_fetch *ufetch, const char *url, } /* if requested, read the message part the URL points to */ - memset(&mpresult, 0, sizeof(mpresult)); + i_zero(&mpresult); if (success && ((url_flags & IMAP_URLAUTH_FETCH_FLAG_BODY) != 0 || (url_flags & IMAP_URLAUTH_FETCH_FLAG_BINARY) != 0)) { ret = imap_msgpart_url_read_part(mpurl, &mpresult, &error); @@ -263,7 +263,7 @@ imap_urlauth_fetch_local(struct imap_urlauth_fetch *ufetch, const char *url, return; } - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.url = url; reply.flags = url_flags; reply.error = errormsg; @@ -459,7 +459,7 @@ static bool imap_urlauth_fetch_do_continue(struct imap_urlauth_fetch *ufetch) ufetch->pending_requests--; - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.url = ufetch->pending_reply.url; reply.flags = ufetch->pending_reply.flags; reply.bodypartstruct = ufetch->pending_reply.bodypartstruct; diff --git a/src/lib-imap/imap-bodystructure.c b/src/lib-imap/imap-bodystructure.c index 482e84ff31..9b08380814 100644 --- a/src/lib-imap/imap-bodystructure.c +++ b/src/lib-imap/imap-bodystructure.c @@ -250,7 +250,7 @@ void imap_bodystructure_parse_header(pool_t pool, struct message_part *part, part_data = part->context; envelope = part_data->envelope; - memset(part_data, 0, sizeof(*part_data)); + i_zero(part_data); part_data->pool = pool; part_data->envelope = envelope; } diff --git a/src/lib-imap/imap-id.c b/src/lib-imap/imap-id.c index e00b8921d4..cef4f1b535 100644 --- a/src/lib-imap/imap-id.c +++ b/src/lib-imap/imap-id.c @@ -22,7 +22,7 @@ static const char *imap_id_get_uname(const char *key) utsname_set = TRUE; if (uname(&utsname_result) < 0) { i_error("uname() failed: %m"); - memset(&utsname_result, 0, sizeof(utsname_result)); + i_zero(&utsname_result); } } diff --git a/src/lib-index/mail-cache-compress.c b/src/lib-index/mail-cache-compress.c index dbe7c3b451..48650ddc33 100644 --- a/src/lib-index/mail-cache-compress.c +++ b/src/lib-index/mail-cache-compress.c @@ -187,7 +187,7 @@ mail_cache_copy(struct mail_cache *cache, struct mail_index_transaction *trans, cache_view = mail_cache_view_open(cache, view); output = o_stream_create_fd_file(fd, 0, FALSE); - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.major_version = MAIL_CACHE_MAJOR_VERSION; hdr.minor_version = MAIL_CACHE_MINOR_VERSION; hdr.compat_sizeof_uoff_t = sizeof(uoff_t); @@ -195,7 +195,7 @@ mail_cache_copy(struct mail_cache *cache, struct mail_index_transaction *trans, hdr.file_seq = get_next_file_seq(cache); o_stream_nsend(output, &hdr, sizeof(hdr)); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.cache = cache; ctx.buffer = buffer_create_dynamic(default_pool, 4096); ctx.field_seen = buffer_create_dynamic(default_pool, 64); @@ -264,7 +264,7 @@ mail_cache_copy(struct mail_cache *cache, struct mail_index_transaction *trans, ctx.field_seen_value++; } - memset(&cache_rec, 0, sizeof(cache_rec)); + i_zero(&cache_rec); buffer_append(ctx.buffer, &cache_rec, sizeof(cache_rec)); mail_cache_lookup_iter_init(cache_view, seq, &iter); diff --git a/src/lib-index/mail-cache-fields.c b/src/lib-index/mail-cache-fields.c index a46a2e400e..57a8cdd8d0 100644 --- a/src/lib-index/mail-cache-fields.c +++ b/src/lib-index/mail-cache-fields.c @@ -377,7 +377,7 @@ int mail_cache_header_fields_read(struct mail_cache *cache) max_drop_time = cache->index->map->hdr.day_stamp == 0 ? 0 : cache->index->map->hdr.day_stamp - MAIL_CACHE_FIELD_DROP_SECS; - memset(&field, 0, sizeof(field)); + i_zero(&field); for (i = 0; i < field_hdr->fields_count; i++) { for (p = names; p != end && *p != '\0'; p++) ; if (p == end || *names == '\0') { @@ -561,7 +561,7 @@ void mail_cache_header_fields_get(struct mail_cache *cache, buffer_t *dest) const char *name; uint32_t i; - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.fields_count = cache->file_fields_count; for (i = 0; i < cache->fields_count; i++) { if (CACHE_FIELD_IS_NEWLY_WANTED(cache, i)) diff --git a/src/lib-index/mail-cache-lookup.c b/src/lib-index/mail-cache-lookup.c index ee8b378c41..01423c5df9 100644 --- a/src/lib-index/mail-cache-lookup.c +++ b/src/lib-index/mail-cache-lookup.c @@ -144,7 +144,7 @@ void mail_cache_lookup_iter_init(struct mail_cache_view *view, uint32_t seq, if (!view->cache->opened) (void)mail_cache_open_and_verify(view->cache); - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ctx->view = view; ctx->seq = seq; @@ -159,7 +159,7 @@ void mail_cache_lookup_iter_init(struct mail_cache_view *view, uint32_t seq, } ctx->remap_counter = view->cache->remap_counter; - memset(&view->loop_track, 0, sizeof(view->loop_track)); + i_zero(&view->loop_track); } static bool @@ -210,7 +210,7 @@ mail_cache_lookup_iter_next_record(struct mail_cache_lookup_iterate_ctx *ctx) ctx->disk_appends_checked = TRUE; ctx->remap_counter = view->cache->remap_counter; - memset(&view->loop_track, 0, sizeof(view->loop_track)); + i_zero(&view->loop_track); } if (ctx->stop) @@ -541,7 +541,7 @@ mail_cache_lookup_headers_real(struct mail_cache_view *view, string_t *dest, field_state = buffer_get_modifiable_data(buf, NULL); /* lookup the fields */ - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.view = view; ctx.pool = *pool_r = pool_alloconly_create(MEMPOOL_GROWING"mail cache headers", 1024); t_array_init(&ctx.lines, 32); diff --git a/src/lib-index/mail-cache-transaction.c b/src/lib-index/mail-cache-transaction.c index 9e91b11b23..97e85f8367 100644 --- a/src/lib-index/mail-cache-transaction.c +++ b/src/lib-index/mail-cache-transaction.c @@ -514,7 +514,7 @@ mail_cache_transaction_switch_seq(struct mail_cache_transaction_ctx *ctx) i_array_init(&ctx->cache_data_seq, 64); } - memset(&new_rec, 0, sizeof(new_rec)); + i_zero(&new_rec); buffer_append(ctx->cache_data, &new_rec, sizeof(new_rec)); ctx->prev_seq = 0; diff --git a/src/lib-index/mail-index-alloc-cache.c b/src/lib-index/mail-index-alloc-cache.c index 8bdc54933f..cc2eebb54f 100644 --- a/src/lib-index/mail-index-alloc-cache.c +++ b/src/lib-index/mail-index-alloc-cache.c @@ -143,7 +143,7 @@ mail_index_alloc_cache_get(const char *mailbox_path, /* compare index_dir inodes so we don't break even with symlinks. if index_dir doesn't exist yet or if using in-memory indexes, just compare mailbox paths */ - memset(&st, 0, sizeof(st)); + i_zero(&st); if (index_dir == NULL) { /* in-memory indexes */ } else if (stat(index_dir, &st) < 0) { diff --git a/src/lib-index/mail-index-fsck.c b/src/lib-index/mail-index-fsck.c index 14afd4828e..1b2dc36224 100644 --- a/src/lib-index/mail-index-fsck.c +++ b/src/lib-index/mail-index-fsck.c @@ -222,7 +222,7 @@ mail_index_fsck_keywords(struct mail_index *index, struct mail_index_map *map, /* add keyword records so we can start appending names directly */ rec_pos = dest->used; - memset(&new_kw_rec, 0, sizeof(new_kw_rec)); + i_zero(&new_kw_rec); (void)buffer_append_space_unsafe(dest, keywords_count * sizeof(*kw_rec)); /* write the actual records and names */ diff --git a/src/lib-index/mail-index-map-read.c b/src/lib-index/mail-index-map-read.c index 95ff4f3aa2..0b07194cf8 100644 --- a/src/lib-index/mail-index-map-read.c +++ b/src/lib-index/mail-index-map-read.c @@ -16,7 +16,7 @@ static void mail_index_map_copy_hdr(struct mail_index_map *map, if (hdr->base_header_size < sizeof(map->hdr)) { /* header smaller than ours, make a copy so our newer headers won't have garbage in them */ - memset(&map->hdr, 0, sizeof(map->hdr)); + i_zero(&map->hdr); memcpy(&map->hdr, hdr, hdr->base_header_size); } else { map->hdr = *hdr; diff --git a/src/lib-index/mail-index-map.c b/src/lib-index/mail-index-map.c index 061c063154..ead9fbdf73 100644 --- a/src/lib-index/mail-index-map.c +++ b/src/lib-index/mail-index-map.c @@ -231,7 +231,7 @@ static void mail_index_header_init(struct mail_index *index, { i_assert((sizeof(*hdr) % sizeof(uint64_t)) == 0); - memset(hdr, 0, sizeof(*hdr)); + i_zero(hdr); hdr->major_version = MAIL_INDEX_MAJOR_VERSION; hdr->minor_version = MAIL_INDEX_MINOR_VERSION; @@ -253,7 +253,7 @@ struct mail_index_map *mail_index_map_alloc(struct mail_index *index) { struct mail_index_map tmp_map; - memset(&tmp_map, 0, sizeof(tmp_map)); + i_zero(&tmp_map); mail_index_header_init(index, &tmp_map.hdr); tmp_map.index = index; tmp_map.hdr_base = &tmp_map.hdr; diff --git a/src/lib-index/mail-index-modseq.c b/src/lib-index/mail-index-modseq.c index 8a987a3728..be5a4652df 100644 --- a/src/lib-index/mail-index-modseq.c +++ b/src/lib-index/mail-index-modseq.c @@ -68,7 +68,7 @@ void mail_index_modseq_enable(struct mail_index *index) view = mail_index_view_open(index); trans = mail_index_transaction_begin(view, 0); - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.highest_modseq = mail_index_modseq_get_head(index); mail_index_update_header_ext(trans, index->modseq_ext_id, 0, &hdr, sizeof(hdr)); @@ -513,7 +513,7 @@ static void mail_index_modseq_update_header(struct mail_index_view *view, if (old_modseq_hdr->log_seq < log_seq || (old_modseq_hdr->log_seq == log_seq && old_modseq_hdr->log_offset < log_offset)) { - memset(&new_modseq_hdr, 0, sizeof(new_modseq_hdr)); + i_zero(&new_modseq_hdr); new_modseq_hdr.highest_modseq = highest_modseq; new_modseq_hdr.log_seq = log_seq; new_modseq_hdr.log_offset = log_offset; diff --git a/src/lib-index/mail-index-strmap.c b/src/lib-index/mail-index-strmap.c index 7360e25924..95228e1ccb 100644 --- a/src/lib-index/mail-index-strmap.c +++ b/src/lib-index/mail-index-strmap.c @@ -508,7 +508,7 @@ strmap_read_block_init(struct mail_index_strmap_view *view, return 0; } - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ret = i_stream_read_data(strmap->input, &data, &size, sizeof(block_size)-1); if (ret <= 0) { @@ -657,7 +657,7 @@ strmap_view_sync_block_check_conflicts(struct mail_index_strmap_read_context *ct if we detect such a conflict, we can't continue using the strmap index until X has been expunged. */ - memset(&iter, 0, sizeof(iter)); + i_zero(&iter); while ((hash_rec = hash2_iterate(ctx->view->hash, crc32, &iter)) != NULL && hash_rec->str_idx != ctx->rec.str_idx) { @@ -799,7 +799,7 @@ void mail_index_strmap_view_sync_add_unique(struct mail_index_strmap_view_sync * (uid == view->last_added_uid && ref_index > view->last_ref_index)); - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.uid = uid; rec.ref_index = ref_index; rec.str_idx = view->next_str_idx++; @@ -826,7 +826,7 @@ static void mail_index_strmap_view_renumber(struct mail_index_strmap_view *view) unsigned int i, dest, count, count2; int ret; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.view = view; ctx.uid_lookup_seq = 1; @@ -977,7 +977,7 @@ mail_index_strmap_recreate_write(struct mail_index_strmap_view *view, idx_hdr = mail_index_get_header(view->view); /* write header */ - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.version = MAIL_INDEX_STRMAP_VERSION; hdr.uid_validity = idx_hdr->uid_validity; o_stream_nsend(output, &hdr, sizeof(hdr)); diff --git a/src/lib-index/mail-index-sync-ext.c b/src/lib-index/mail-index-sync-ext.c index 1203da77c6..04b33e0ac0 100644 --- a/src/lib-index/mail-index-sync-ext.c +++ b/src/lib-index/mail-index-sync-ext.c @@ -23,7 +23,7 @@ void mail_index_sync_init_expunge_handlers(struct mail_index_sync_map_ctx *ctx) if (!array_is_created(&ctx->view->map->extensions)) return; - memset(&eh, 0, sizeof(eh)); + i_zero(&eh); if (array_is_created(&ctx->expunge_handlers)) array_clear(&ctx->expunge_handlers); else @@ -449,13 +449,13 @@ void mail_index_sync_ext_init(struct mail_index_sync_map_ctx *ctx, return; /* make sure it's the expected size */ - memset(&u, 0, sizeof(u)); + i_zero(&u); u.hdr_size = rext->hdr_size; u.record_size = rext->record_size; u.record_align = rext->record_align; sync_ext_resize(&u, *ext_map_idx_r, ctx, FALSE); } else { - memset(&ext_hdr, 0, sizeof(ext_hdr)); + i_zero(&ext_hdr); ext_hdr.name_size = strlen(name); ext_hdr.hdr_size = rext->hdr_size; ext_hdr.record_size = rext->record_size; @@ -523,7 +523,7 @@ int mail_index_sync_ext_intro(struct mail_index_sync_map_ctx *ctx, return -1; } - memset(&ext_hdr, 0, sizeof(ext_hdr)); + i_zero(&ext_hdr); ext_hdr.name_size = strlen(name); ext_hdr.reset_id = u->reset_id; ext_hdr.hdr_size = u->hdr_size; diff --git a/src/lib-index/mail-index-sync-keywords.c b/src/lib-index/mail-index-sync-keywords.c index d7f6c0675b..1f40d8e0a3 100644 --- a/src/lib-index/mail-index-sync-keywords.c +++ b/src/lib-index/mail-index-sync-keywords.c @@ -155,7 +155,7 @@ keywords_header_add(struct mail_index_sync_map_ctx *ctx, } /* add the keyword */ - memset(&kw_rec, 0, sizeof(kw_rec)); + i_zero(&kw_rec); kw_rec.name_offset = name_offset; keyword_len = strlen(keyword_name) + 1; diff --git a/src/lib-index/mail-index-sync-update.c b/src/lib-index/mail-index-sync-update.c index 3a7a80c8f0..febd7e6588 100644 --- a/src/lib-index/mail-index-sync-update.c +++ b/src/lib-index/mail-index-sync-update.c @@ -653,7 +653,7 @@ mail_index_sync_record_real(struct mail_index_sync_map_ctx *ctx, ret = -1; break; } - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); memcpy(&rec, data, I_MIN(hdr->size, sizeof(rec))); ret = mail_index_sync_ext_reset(ctx, &rec); break; @@ -831,7 +831,7 @@ void mail_index_sync_map_init(struct mail_index_sync_map_ctx *sync_map_ctx, struct mail_index_view *view, enum mail_index_sync_handler_type type) { - memset(sync_map_ctx, 0, sizeof(*sync_map_ctx)); + i_zero(sync_map_ctx); sync_map_ctx->view = view; sync_map_ctx->cur_ext_map_idx = (uint32_t)-1; sync_map_ctx->type = type; diff --git a/src/lib-index/mail-index-sync.c b/src/lib-index/mail-index-sync.c index 739716e478..fa54148928 100644 --- a/src/lib-index/mail-index-sync.c +++ b/src/lib-index/mail-index-sync.c @@ -152,7 +152,7 @@ static void mail_index_sync_add_dirty_updates(struct mail_index_sync_ctx *ctx) const struct mail_index_record *rec; uint32_t seq, messages_count; - memset(&update, 0, sizeof(update)); + i_zero(&update); messages_count = mail_index_view_get_messages_count(ctx->view); for (seq = 1; seq <= messages_count; seq++) { diff --git a/src/lib-index/mail-index-transaction-export.c b/src/lib-index/mail-index-transaction-export.c index fa690e1ec8..dbb04b6a62 100644 --- a/src/lib-index/mail-index-transaction-export.c +++ b/src/lib-index/mail-index-transaction-export.c @@ -57,7 +57,7 @@ log_get_hdr_update_buffer(struct mail_index_transaction *t, bool prepend) uint16_t offset; int state = 0; - memset(&u, 0, sizeof(u)); + i_zero(&u); data = prepend ? t->pre_hdr_change : t->post_hdr_change; mask = prepend ? t->pre_hdr_mask : t->post_hdr_mask; @@ -200,8 +200,8 @@ log_append_ext_hdr_update(struct mail_index_export_context *ctx, size_t offset; bool started = FALSE, use_32 = hdr->alloc_size >= 65536; - memset(&u, 0, sizeof(u)); - memset(&u32, 0, sizeof(u32)); + i_zero(&u); + i_zero(&u32); data = hdr->data; mask = hdr->mask; @@ -283,7 +283,7 @@ mail_transaction_log_append_ext_intros(struct mail_index_export_context *ctx) ext_count = hdrs_count; } - memset(&ext_reset, 0, sizeof(ext_reset)); + i_zero(&ext_reset); buffer_create_from_data(&reset_buf, &ext_reset, sizeof(ext_reset)); buffer_set_used_size(&reset_buf, sizeof(ext_reset)); @@ -361,7 +361,7 @@ log_append_keyword_update(struct mail_index_export_context *ctx, i_assert(uid_buffer->used > 0); - memset(&kt_hdr, 0, sizeof(kt_hdr)); + i_zero(&kt_hdr); kt_hdr.modify_type = modify_type; kt_hdr.name_size = strlen(keyword); @@ -417,7 +417,7 @@ void mail_index_transaction_export(struct mail_index_transaction *t, enum mail_index_fsync_mask change_mask = 0; struct mail_index_export_context ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.trans = t; ctx.append_ctx = append_ctx; diff --git a/src/lib-index/mail-index-transaction-update.c b/src/lib-index/mail-index-transaction-update.c index 1cdfbf3a52..9f92625c6b 100644 --- a/src/lib-index/mail-index-transaction-update.c +++ b/src/lib-index/mail-index-transaction-update.c @@ -592,7 +592,7 @@ void mail_index_update_flags_range(struct mail_index_transaction *t, if ((t->flags & MAIL_INDEX_TRANSACTION_FLAG_AVOID_FLAG_UPDATES) != 0) t->drop_unnecessary_flag_updates = TRUE; - memset(&u, 0, sizeof(u)); + i_zero(&u); u.uid1 = seq1; u.uid2 = seq2; @@ -740,7 +740,7 @@ mail_index_ext_rec_updates_resize(struct mail_index_transaction *t, return; old_array = *array; - memset(array, 0, sizeof(*array)); + i_zero(array); mail_index_seq_array_alloc(array, new_record_size); /* copy the records' beginnings. leave the end zero-filled. */ @@ -763,7 +763,7 @@ void mail_index_ext_resize(struct mail_index_transaction *t, uint32_t ext_id, struct mail_transaction_ext_intro intro; uint32_t old_record_size = 0, old_record_align, old_header_size; - memset(&intro, 0, sizeof(intro)); + i_zero(&intro); rext = array_idx(&t->view->index->extensions, ext_id); /* get ext_id from transaction's map if it's there */ @@ -837,7 +837,7 @@ void mail_index_ext_reset(struct mail_index_transaction *t, uint32_t ext_id, i_assert(reset_id != 0); - memset(&reset, 0, sizeof(reset)); + i_zero(&reset); reset.new_reset_id = reset_id; reset.preserve_data = !clear_data; diff --git a/src/lib-index/mail-index-transaction-view.c b/src/lib-index/mail-index-transaction-view.c index 54736d5f0d..c81d769cf8 100644 --- a/src/lib-index/mail-index-transaction-view.c +++ b/src/lib-index/mail-index-transaction-view.c @@ -419,7 +419,7 @@ tview_lookup_ext_update(struct mail_index_view_transaction *tview, uint32_t seq, array_idx(&tview->view.index->extensions, ext_id); struct mail_index_ext_header ext_hdr; - memset(&ext_hdr, 0, sizeof(ext_hdr)); + i_zero(&ext_hdr); ext_hdr.hdr_size = rext->hdr_size; ext_hdr.record_size = ext_buf->arr.element_size - sizeof(uint32_t); ext_hdr.record_align = rext->record_align; diff --git a/src/lib-index/mail-index-transaction.c b/src/lib-index/mail-index-transaction.c index 492615bbdd..6b7c680e9c 100644 --- a/src/lib-index/mail-index-transaction.c +++ b/src/lib-index/mail-index-transaction.c @@ -266,7 +266,7 @@ int mail_index_transaction_commit_full(struct mail_index_transaction **_t, } *_t = NULL; - memset(result_r, 0, sizeof(*result_r)); + i_zero(result_r); if (t->v.commit(t, result_r) < 0) return -1; diff --git a/src/lib-index/mail-index-view-sync.c b/src/lib-index/mail-index-view-sync.c index 9861c8fb6f..23da6899f0 100644 --- a/src/lib-index/mail-index-view-sync.c +++ b/src/lib-index/mail-index-view-sync.c @@ -293,9 +293,9 @@ static int view_sync_update_keywords(struct mail_index_view_sync_ctx *ctx, return 0; kw_names = array_idx(&ctx->view->index->keywords, 0); - memset(&thdr, 0, sizeof(thdr)); + i_zero(&thdr); thdr.type = MAIL_TRANSACTION_KEYWORD_UPDATE | MAIL_TRANSACTION_EXTERNAL; - memset(&kw_up, 0, sizeof(kw_up)); + i_zero(&kw_up); kw_up.modify_type = MODIFY_ADD; /* add new flags one by one */ for (i = 0; i < count; i++) { @@ -334,7 +334,7 @@ static int view_sync_apply_lost_changes(struct mail_index_view_sync_ctx *ctx, old_rec = MAIL_INDEX_REC_AT_SEQ(old_map, old_seq); new_rec = MAIL_INDEX_REC_AT_SEQ(new_map, new_seq); - memset(&thdr, 0, sizeof(thdr)); + i_zero(&thdr); if (old_rec->flags != new_rec->flags) { struct mail_transaction_flag_update flag_update; @@ -348,7 +348,7 @@ static int view_sync_apply_lost_changes(struct mail_index_view_sync_ctx *ctx, MAIL_TRANSACTION_EXTERNAL; thdr.size = sizeof(flag_update); - memset(&flag_update, 0, sizeof(flag_update)); + i_zero(&flag_update); flag_update.uid1 = flag_update.uid2 = new_rec->uid; flag_update.add_flags = new_rec->flags; flag_update.remove_flags = ~new_rec->flags & 0xff; @@ -367,7 +367,7 @@ static int view_sync_apply_lost_changes(struct mail_index_view_sync_ctx *ctx, thdr.size = sizeof(kw_reset); /* remove all old flags by resetting them */ - memset(&kw_reset, 0, sizeof(kw_reset)); + i_zero(&kw_reset); kw_reset.uid1 = kw_reset.uid2 = new_rec->uid; if (mail_index_sync_record(&ctx->sync_map_ctx, &thdr, &kw_reset) < 0) diff --git a/src/lib-index/mail-index-view.c b/src/lib-index/mail-index-view.c index 45ea3ecc86..7af3cebb57 100644 --- a/src/lib-index/mail-index-view.c +++ b/src/lib-index/mail-index-view.c @@ -25,7 +25,7 @@ mail_index_view_dup_private(const struct mail_index_view *src) void mail_index_view_clone(struct mail_index_view *dest, const struct mail_index_view *src) { - memset(dest, 0, sizeof(*dest)); + i_zero(dest); dest->refcount = 1; dest->v = src->v; dest->index = src->index; diff --git a/src/lib-index/mail-index.c b/src/lib-index/mail-index.c index 58a45aff8d..3b22c6dc97 100644 --- a/src/lib-index/mail-index.c +++ b/src/lib-index/mail-index.c @@ -169,7 +169,7 @@ uint32_t mail_index_ext_register(struct mail_index *index, const char *name, if (mail_index_ext_lookup(index, name, &ext_id)) return ext_id; - memset(&rext, 0, sizeof(rext)); + i_zero(&rext); rext.name = p_strdup(index->extension_pool, name); rext.index_idx = array_count(&index->extensions); rext.hdr_size = default_hdr_size; diff --git a/src/lib-index/mail-transaction-log-append.c b/src/lib-index/mail-transaction-log-append.c index 9fd4c1387c..5389ae0c8d 100644 --- a/src/lib-index/mail-transaction-log-append.c +++ b/src/lib-index/mail-transaction-log-append.c @@ -18,7 +18,7 @@ void mail_transaction_log_append_add(struct mail_transaction_log_append_ctx *ctx if (size == 0) return; - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.type = type | ctx->trans_flags; if (type == MAIL_TRANSACTION_EXPUNGE || type == MAIL_TRANSACTION_EXPUNGE_GUID) @@ -229,7 +229,7 @@ int mail_transaction_log_append_begin(struct mail_index *index, ctx->output = buffer_create_dynamic(default_pool, 1024); ctx->trans_flags = flags; - memset(&boundary, 0, sizeof(boundary)); + i_zero(&boundary); mail_transaction_log_append_add(ctx, MAIL_TRANSACTION_BOUNDARY, &boundary, sizeof(boundary)); diff --git a/src/lib-index/mail-transaction-log-file.c b/src/lib-index/mail-transaction-log-file.c index 0ff37dfa50..2a2beca2ba 100644 --- a/src/lib-index/mail-transaction-log-file.c +++ b/src/lib-index/mail-transaction-log-file.c @@ -224,7 +224,7 @@ mail_transaction_log_init_hdr(struct mail_transaction_log *log, i_assert(index->indexid != 0); - memset(hdr, 0, sizeof(*hdr)); + i_zero(hdr); hdr->major_version = MAIL_TRANSACTION_LOG_MAJOR_VERSION; hdr->minor_version = MAIL_TRANSACTION_LOG_MINOR_VERSION; hdr->hdr_size = sizeof(struct mail_transaction_log_header); @@ -441,7 +441,7 @@ mail_transaction_log_file_read_header(struct mail_transaction_log_file *file) i_assert(file->buffer == NULL && file->mmap_base == NULL); - memset(&file->hdr, 0, sizeof(file->hdr)); + i_zero(&file->hdr); if (file->last_size < mmap_get_page_size() && file->last_size > 0) { /* just read the entire transaction log to memory. note that if some of the data hasn't been fully committed diff --git a/src/lib-index/mail-transaction-log.c b/src/lib-index/mail-transaction-log.c index 39c19523c6..140b1bb361 100644 --- a/src/lib-index/mail-transaction-log.c +++ b/src/lib-index/mail-transaction-log.c @@ -605,7 +605,7 @@ void mail_transaction_log_get_dotlock_set(struct mail_transaction_log *log, { struct mail_index *index = log->index; - memset(set_r, 0, sizeof(*set_r)); + i_zero(set_r); set_r->timeout = I_MIN(MAIL_TRANSACTION_LOG_LOCK_TIMEOUT, index->max_lock_timeout_secs); set_r->stale_timeout = MAIL_TRANSACTION_LOG_LOCK_CHANGE_TIMEOUT; diff --git a/src/lib-index/test-mail-index-map.c b/src/lib-index/test-mail-index-map.c index 3430c59165..44c8ea2d85 100644 --- a/src/lib-index/test-mail-index-map.c +++ b/src/lib-index/test-mail-index-map.c @@ -13,8 +13,8 @@ static void test_mail_index_map_lookup_seq_range_count(unsigned int messages_cou struct mail_index_map map; uint32_t seq, first_uid, last_uid, first_seq, last_seq, max_uid; - memset(&map, 0, sizeof(map)); - memset(&rec_map, 0, sizeof(rec_map)); + i_zero(&map); + i_zero(&rec_map); map.rec_map = &rec_map; map.hdr.messages_count = messages_count; map.hdr.record_size = sizeof(struct mail_index_record); diff --git a/src/lib-index/test-mail-index-sync-ext.c b/src/lib-index/test-mail-index-sync-ext.c index b5c0a1170a..f36e41f74a 100644 --- a/src/lib-index/test-mail-index-sync-ext.c +++ b/src/lib-index/test-mail-index-sync-ext.c @@ -41,7 +41,7 @@ static void test_mail_index_sync_ext_atomic_inc(void) test_begin("mail index sync ext atomic inc"); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.view = t_new(struct mail_index_view, 1); ctx.view->map = t_new(struct mail_index_map, 1); ctx.view->map->hdr.next_uid = 2; @@ -54,7 +54,7 @@ static void test_mail_index_sync_ext_atomic_inc(void) ext->record_offset = sizeof(struct mail_index_record); ptr = PTR_OFFSET(ctx.view->map->rec_map->records, ext->record_offset); - memset(&u, 0, sizeof(u)); + i_zero(&u); test_assert(mail_index_sync_ext_atomic_inc(&ctx, &u) == -1); u.uid = 2; diff --git a/src/lib-index/test-mail-index-transaction-finish.c b/src/lib-index/test-mail-index-transaction-finish.c index 40bef55940..f773defbf1 100644 --- a/src/lib-index/test-mail-index-transaction-finish.c +++ b/src/lib-index/test-mail-index-transaction-finish.c @@ -72,7 +72,7 @@ test_mail_index_transaction_finish_flag_updates(unsigned int n_so_far) t = t_new(struct mail_index_transaction, 1); t->drop_unnecessary_flag_updates = TRUE; - memset(&u, 0, sizeof(u)); + i_zero(&u); u.add_flags = MAIL_SEEN; u.remove_flags = MAIL_DRAFT; test_begin(t_strdup_printf("mail index transaction finish flag updates n_so_far=%u", n_so_far)); diff --git a/src/lib-index/test-mail-transaction-log-view.c b/src/lib-index/test-mail-transaction-log-view.c index c694cd7fc1..a95c4bd5f3 100644 --- a/src/lib-index/test-mail-transaction-log-view.c +++ b/src/lib-index/test-mail-transaction-log-view.c @@ -105,7 +105,7 @@ add_append_record(struct mail_transaction_log_file *file, struct mail_transaction_header hdr; size_t size; - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.type = MAIL_TRANSACTION_APPEND | MAIL_TRANSACTION_EXTERNAL; hdr.size = mail_index_uint32_to_offset(sizeof(hdr) + sizeof(*rec)); @@ -139,7 +139,7 @@ static void test_mail_transaction_log_view(void) test_transaction_log_file_add(3); /* add an append record to the 3rd log file */ - memset(&append_rec, 0, sizeof(append_rec)); + i_zero(&append_rec); append_rec.uid = 1; last_log_size = sizeof(struct mail_transaction_log_header) + diff --git a/src/lib-lda/duplicate.c b/src/lib-lda/duplicate.c index 609cf32fbf..a01de482ca 100644 --- a/src/lib-lda/duplicate.c +++ b/src/lib-lda/duplicate.c @@ -297,14 +297,14 @@ void duplicate_flush(struct duplicate_context *ctx) return; } - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.version = DUPLICATE_VERSION; output = o_stream_create_fd_file(file->new_fd, 0, FALSE); o_stream_cork(output); o_stream_nsend(output, &hdr, sizeof(hdr)); - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); iter = hash_table_iterate_init(file->hash); while (hash_table_iterate(iter, file->hash, &d, &d)) { rec.stamp = d->time; diff --git a/src/lib-lda/mail-deliver.c b/src/lib-lda/mail-deliver.c index 6f83534307..37ada54039 100644 --- a/src/lib-lda/mail-deliver.c +++ b/src/lib-lda/mail-deliver.c @@ -344,7 +344,7 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox, if (default_save) ctx->tried_default_save = TRUE; - memset(&open_ctx, 0, sizeof(open_ctx)); + i_zero(&open_ctx); open_ctx.user = ctx->dest_user; open_ctx.lda_mailbox_autocreate = ctx->set->lda_mailbox_autocreate; open_ctx.lda_mailbox_autosubscribe = ctx->set->lda_mailbox_autosubscribe; diff --git a/src/lib-lda/smtp-client.c b/src/lib-lda/smtp-client.c index 131766ef03..533c7f33a4 100644 --- a/src/lib-lda/smtp-client.c +++ b/src/lib-lda/smtp-client.c @@ -276,7 +276,7 @@ smtp_client_send_flush(struct smtp_client *smtp_client, return -1; } - memset(&client_set, 0, sizeof(client_set)); + i_zero(&client_set); client_set.mail_from = smtp_client->return_path == NULL ? "<>" : t_strconcat("<", smtp_client->return_path, ">", NULL); client_set.my_hostname = smtp_client->set->hostname; diff --git a/src/lib-ldap/ldap-compare.c b/src/lib-ldap/ldap-compare.c index 0e81c657a5..785f612017 100644 --- a/src/lib-ldap/ldap-compare.c +++ b/src/lib-ldap/ldap-compare.c @@ -22,7 +22,7 @@ ldap_compare_callback(struct ldap_connection *conn, ret = ldap_parse_result(conn->conn, message, &result_err, NULL, &result_errmsg, NULL, NULL, 0); - memset(&res, 0, sizeof(res)); + i_zero(&res); res.openldap_ret = ret; if (ret != LDAP_SUCCESS) { res.error_string = t_strdup_printf( diff --git a/src/lib-ldap/ldap-connection.c b/src/lib-ldap/ldap-connection.c index 31a27cf513..c0a63f1bce 100644 --- a/src/lib-ldap/ldap-connection.c +++ b/src/lib-ldap/ldap-connection.c @@ -212,7 +212,7 @@ ldap_connection_result_failure(struct ldap_connection *conn, int ret, const char *error) { struct ldap_result res; - memset(&res, 0, sizeof(res)); + i_zero(&res); res.conn = conn; res.openldap_ret = ret; res.error_string = error; @@ -228,7 +228,7 @@ void ldap_connection_result_success(struct ldap_connection *conn, struct ldap_op_queue_entry *req) { struct ldap_result res; - memset(&res, 0, sizeof(res)); + i_zero(&res); res.conn = conn; res.openldap_ret = LDAP_SUCCESS; if (req->result_callback != NULL) @@ -282,7 +282,7 @@ void ldap_connection_send_next(struct ldap_connection *conn) /* did not succeed */ struct ldap_result res; - memset(&res, 0, sizeof(res)); + i_zero(&res); res.openldap_ret = ret; if (req->result_callback != NULL) req->result_callback(&res, req->result_callback_ctx); @@ -417,7 +417,7 @@ void ldap_connection_abort_request(struct ldap_op_queue_entry *req) if (req->msgid > -1) ldap_abandon_ext(req->conn->conn, req->msgid, NULL, NULL); - memset(&res, 0, sizeof(res)); + i_zero(&res); res.openldap_ret = LDAP_TIMEOUT; res.error_string = "Aborting LDAP request after timeout"; if (req->result_callback != NULL) @@ -441,7 +441,7 @@ static void ldap_connection_abort_all_requests(struct ldap_connection *conn) { struct ldap_result res; - memset(&res, 0, sizeof(res)); + i_zero(&res); res.openldap_ret = LDAP_TIMEOUT; res.error_string = "Aborting LDAP requests due to failure"; diff --git a/src/lib-mail/istream-attachment-extractor.c b/src/lib-mail/istream-attachment-extractor.c index 27b051ea26..c33494a34a 100644 --- a/src/lib-mail/istream-attachment-extractor.c +++ b/src/lib-mail/istream-attachment-extractor.c @@ -139,7 +139,7 @@ static bool astream_want_attachment(struct attachment_istream *astream, if (astream->set.want_attachment == NULL) return TRUE; - memset(&ahdr, 0, sizeof(ahdr)); + i_zero(&ahdr); ahdr.part = part; ahdr.content_type = astream->part.content_type; ahdr.content_disposition = astream->part.content_disposition; @@ -462,7 +462,7 @@ astream_part_finish(struct attachment_istream *astream, const char **error_r) return -1; } - memset(&info, 0, sizeof(info)); + i_zero(&info); info.start_offset = astream->part.start_offset; /* base64_bytes contains how many valid base64 bytes there are so far. if the base64 ends properly, it'll specify how much of the MIME part @@ -544,7 +544,7 @@ static void astream_part_reset(struct attachment_istream *astream) if (part->part_buf != NULL) buffer_free(&part->part_buf); - memset(part, 0, sizeof(*part)); + i_zero(part); part->temp_fd = -1; hash_format_reset(astream->set.hash_format); } diff --git a/src/lib-mail/mbox-from.c b/src/lib-mail/mbox-from.c index 6ce85f62d8..391809269f 100644 --- a/src/lib-mail/mbox-from.c +++ b/src/lib-mail/mbox-from.c @@ -99,7 +99,7 @@ int mbox_from_parse(const unsigned char *msg, size_t size, if (msg+29-3-5 > msg_end) return -1; - memset(&tm, 0, sizeof(tm)); + i_zero(&tm); /* skip weekday */ msg += 4; diff --git a/src/lib-mail/message-address.c b/src/lib-mail/message-address.c index 4f1a31f1e7..7cecc79751 100644 --- a/src/lib-mail/message-address.c +++ b/src/lib-mail/message-address.c @@ -23,7 +23,7 @@ static void add_address(struct message_address_parser_context *ctx) addr = p_new(ctx->pool, struct message_address, 1); memcpy(addr, &ctx->addr, sizeof(ctx->addr)); - memset(&ctx->addr, 0, sizeof(ctx->addr)); + i_zero(&ctx->addr); if (ctx->first_addr == NULL) ctx->first_addr = addr; @@ -307,7 +307,7 @@ message_address_parse_real(pool_t pool, const unsigned char *data, size_t size, { struct message_address_parser_context ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); rfc822_parser_init(&ctx.parser, data, size, t_str_new(128)); ctx.pool = pool; diff --git a/src/lib-mail/message-date.c b/src/lib-mail/message-date.c index ab52e78327..d3f03d5cf3 100644 --- a/src/lib-mail/message-date.c +++ b/src/lib-mail/message-date.c @@ -121,7 +121,7 @@ message_date_parser_tokens(struct message_date_parser_context *ctx, int ret; /* [weekday_name "," ] dd month_name [yy]yy hh:mi[:ss] timezone */ - memset(&tm, 0, sizeof(tm)); + i_zero(&tm); rfc822_skip_lwsp(&ctx->parser); diff --git a/src/lib-mail/message-header-decode.c b/src/lib-mail/message-header-decode.c index e296eeec46..5a2448c61a 100644 --- a/src/lib-mail/message-header-decode.c +++ b/src/lib-mail/message-header-decode.c @@ -178,7 +178,7 @@ void message_header_decode_utf8(const unsigned char *data, size_t size, { struct decode_utf8_context ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.dest = dest; ctx.normalizer = normalizer; message_header_decode(data, size, decode_utf8_callback, &ctx); diff --git a/src/lib-mail/message-header-parser.c b/src/lib-mail/message-header-parser.c index 587048fc58..97d3035c2b 100644 --- a/src/lib-mail/message-header-parser.c +++ b/src/lib-mail/message-header-parser.c @@ -36,7 +36,7 @@ message_parse_header_init(struct istream *input, struct message_size *hdr_size, i_stream_ref(input); if (hdr_size != NULL) - memset(hdr_size, 0, sizeof(*hdr_size)); + i_zero(hdr_size); return ctx; } diff --git a/src/lib-mail/message-parser.c b/src/lib-mail/message-parser.c index 1ab18c7d98..2d12a6858b 100644 --- a/src/lib-mail/message-parser.c +++ b/src/lib-mail/message-parser.c @@ -1109,7 +1109,7 @@ int message_parser_parse_next_block(struct message_parser_ctx *ctx, int ret; bool eof = FALSE, full; - memset(block_r, 0, sizeof(*block_r)); + i_zero(block_r); while ((ret = ctx->parse_next_block(ctx, block_r)) == 0) { ret = message_parser_read_more(ctx, block_r, &full); diff --git a/src/lib-mail/message-part-serialize.c b/src/lib-mail/message-part-serialize.c index 3ab584e481..9520d32f27 100644 --- a/src/lib-mail/message-part-serialize.c +++ b/src/lib-mail/message-part-serialize.c @@ -250,7 +250,7 @@ message_part_deserialize(pool_t pool, const void *data, size_t size, struct deserialize_context ctx; struct message_part *part; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool; ctx.data = data; ctx.end = ctx.data + size; diff --git a/src/lib-mail/message-search.c b/src/lib-mail/message-search.c index 45c85e4c3d..542f622119 100644 --- a/src/lib-mail/message-search.c +++ b/src/lib-mail/message-search.c @@ -121,7 +121,7 @@ bool message_search_more_get_decoded(struct message_search_context *ctx, struct message_header_line *hdr = raw_block->hdr; struct message_block decoded_block; - memset(decoded_block_r, 0, sizeof(*decoded_block_r)); + i_zero(decoded_block_r); decoded_block_r->part = raw_block->part; if (raw_block->part != ctx->prev_part) { diff --git a/src/lib-mail/message-snippet.c b/src/lib-mail/message-snippet.c index bb1dba4cea..8cdc01c674 100644 --- a/src/lib-mail/message-snippet.c +++ b/src/lib-mail/message-snippet.c @@ -103,7 +103,7 @@ int message_snippet_generate(struct istream *input, pool_t pool; int ret; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); pool = pool_alloconly_create("message snippet", 1024); ctx.snippet = snippet; ctx.chars_left = max_snippet_chars; diff --git a/src/lib-mail/rfc2231-parser.c b/src/lib-mail/rfc2231-parser.c index 7d9d246b46..4551db98ea 100644 --- a/src/lib-mail/rfc2231-parser.c +++ b/src/lib-mail/rfc2231-parser.c @@ -52,7 +52,7 @@ int rfc2231_parse(struct rfc822_parser_context *ctx, /* Get a list of all parameters. RFC 2231 uses key*[*]=value pairs, which we want to merge to a key[*]=value pair. Save them to a separate array. */ - memset(&rfc2231_param, 0, sizeof(rfc2231_param)); + i_zero(&rfc2231_param); t_array_init(&result, 8); t_array_init(&rfc2231_params_arr, 8); while ((ret = rfc822_parse_content_param(ctx, &key, &value)) != 0) { diff --git a/src/lib-mail/rfc822-parser.c b/src/lib-mail/rfc822-parser.c index 3bd070d702..9f9ee88c6b 100644 --- a/src/lib-mail/rfc822-parser.c +++ b/src/lib-mail/rfc822-parser.c @@ -55,7 +55,7 @@ void rfc822_parser_init(struct rfc822_parser_context *ctx, const unsigned char *data, size_t size, string_t *last_comment) { - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ctx->data = data; ctx->end = data + size; ctx->last_comment = last_comment; diff --git a/src/lib-mail/test-istream-attachment.c b/src/lib-mail/test-istream-attachment.c index 999a3f1d76..5b85b6af21 100644 --- a/src/lib-mail/test-istream-attachment.c +++ b/src/lib-mail/test-istream-attachment.c @@ -209,7 +209,7 @@ get_istream_attachment_settings(struct istream_attachment_settings *set_r) { const char *error; - memset(set_r, 0, sizeof(*set_r)); + i_zero(set_r); set_r->min_size = 1; set_r->drain_parent_input = TRUE; set_r->open_temp_fd = test_open_temp_fd; diff --git a/src/lib-mail/test-message-decoder.c b/src/lib-mail/test-message-decoder.c index 1f7b673b4b..62eac7818e 100644 --- a/src/lib-mail/test-message-decoder.c +++ b/src/lib-mail/test-message-decoder.c @@ -24,14 +24,14 @@ static void test_message_decoder(void) test_begin("message decoder"); - memset(&part, 0, sizeof(part)); - memset(&input, 0, sizeof(input)); + i_zero(&part); + i_zero(&input); memset(&output, 0xff, sizeof(output)); input.part = ∂ ctx = message_decoder_init(NULL, 0); - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.name = "Content-Transfer-Encoding"; hdr.name_len = strlen(hdr.name); hdr.full_value = (const void *)"quoted-printable"; @@ -91,10 +91,10 @@ static void test_message_decoder_current_content_type(void) test_begin("message_decoder_current_content_type()"); - memset(&part, 0, sizeof(part)); + i_zero(&part); part2 = part3 = part; - memset(&input, 0, sizeof(input)); + i_zero(&input); memset(&output, 0xff, sizeof(output)); input.part = ∂ @@ -102,7 +102,7 @@ static void test_message_decoder_current_content_type(void) test_assert(message_decoder_current_content_type(ctx) == NULL); /* multipart/mixed */ - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.name = "Content-Type"; hdr.name_len = strlen(hdr.name); hdr.full_value = (const void *)"multipart/mixed; boundary=x"; diff --git a/src/lib-mail/test-message-header-hash.c b/src/lib-mail/test-message-header-hash.c index 39fbfe99bd..09e8fde5e4 100644 --- a/src/lib-mail/test-message-header-hash.c +++ b/src/lib-mail/test-message-header-hash.c @@ -20,7 +20,7 @@ static void test_dsync_mail_hash_more(void) test_begin("dsync_mail_hash_more v2"); md5_init(&md5_ctx); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); message_header_hash_more(&ctx, &hash_method_md5, &md5_ctx, 2, test_input, sizeof(test_input)-1); md5_final(&md5_ctx, md5_input); @@ -33,7 +33,7 @@ static void test_dsync_mail_hash_more(void) /* single byte at a time */ md5_init(&md5_ctx); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); for (unsigned int i = 0; i < sizeof(test_input)-1; i++) { message_header_hash_more(&ctx, &hash_method_md5, &md5_ctx, 2, test_input + i, 1); diff --git a/src/lib-mail/test-message-search.c b/src/lib-mail/test-message-search.c index 401d513e23..d876c86f36 100644 --- a/src/lib-mail/test-message-search.c +++ b/src/lib-mail/test-message-search.c @@ -22,11 +22,11 @@ static void test_message_search_more_get_decoded(void) ctx1 = message_search_init("p\xC3\xA4\xC3\xA4", NULL, 0); ctx2 = message_search_init("p\xC3\xB6\xC3\xB6", NULL, 0); - memset(&raw_block, 0, sizeof(raw_block)); + i_zero(&raw_block); raw_block.part = ∂ /* feed the Content-Type header */ - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.name = "Content-Type"; hdr.name_len = strlen(hdr.name); hdr.value = hdr.full_value = text_plain; hdr.value_len = hdr.full_value_len = sizeof(text_plain)-1; diff --git a/src/lib-master/master-auth.c b/src/lib-master/master-auth.c index 2a048f3ff6..d35bd4e091 100644 --- a/src/lib-master/master-auth.c +++ b/src/lib-master/master-auth.c @@ -227,7 +227,7 @@ void master_auth_request(struct master_auth *auth, int fd, { struct master_auth_request_params params; - memset(¶ms, 0, sizeof(params)); + i_zero(¶ms); params.client_fd = fd; params.request = *request; params.data = data; diff --git a/src/lib-master/master-login.c b/src/lib-master/master-login.c index df2273890f..3749fe04ca 100644 --- a/src/lib-master/master-login.c +++ b/src/lib-master/master-login.c @@ -356,7 +356,7 @@ master_login_auth_callback(const char *const *auth_args, const char *errormsg, struct master_login_connection *conn = client->conn; struct master_auth_reply reply; - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); reply.tag = client->auth_req.tag; reply.status = errormsg == NULL ? MASTER_AUTH_STATUS_OK : MASTER_AUTH_STATUS_INTERNAL_ERROR; diff --git a/src/lib-master/master-service-settings.c b/src/lib-master/master-service-settings.c index 4a25f6592c..9c2e495ce8 100644 --- a/src/lib-master/master-service-settings.c +++ b/src/lib-master/master-service-settings.c @@ -376,7 +376,7 @@ void master_service_config_socket_try_open(struct master_service *service) (service->flags & MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS) != 0) return; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.never_exec = TRUE; fd = master_service_open_config(service, &input, &path, &error); if (fd != -1) @@ -399,7 +399,7 @@ int master_service_settings_read(struct master_service *service, time_t now, timeout; bool use_environment, retry; - memset(output_r, 0, sizeof(*output_r)); + i_zero(output_r); if (getenv("DOVECONF_ENV") == NULL && (service->flags & MASTER_SERVICE_FLAG_NO_CONFIG_SETTINGS) == 0) { @@ -546,7 +546,7 @@ int master_service_settings_read_simple(struct master_service *service, struct master_service_settings_input input; struct master_service_settings_output output; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = roots; input.module = service->name; return master_service_settings_read(service, &input, &output, error_r); diff --git a/src/lib-master/master-service-ssl.c b/src/lib-master/master-service-ssl.c index f899ebdbce..4adc557055 100644 --- a/src/lib-master/master-service-ssl.c +++ b/src/lib-master/master-service-ssl.c @@ -78,7 +78,7 @@ int master_service_ssl_init(struct master_service *service, set = master_service_ssl_settings_get(service); - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.verbose = set->verbose_ssl; ssl_set.verify_remote_cert = set->ssl_verify_client_cert; @@ -111,7 +111,7 @@ void master_service_ssl_ctx_init(struct master_service *service) return; } - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.protocols = set->ssl_protocols; ssl_set.cipher_list = set->ssl_cipher_list; ssl_set.ca = set->ssl_ca; diff --git a/src/lib-master/master-service.c b/src/lib-master/master-service.c index 986139475e..0f1489d239 100644 --- a/src/lib-master/master-service.c +++ b/src/lib-master/master-service.c @@ -904,7 +904,7 @@ static void master_service_listen(struct master_service_listener *l) } } - memset(&conn, 0, sizeof(conn)); + i_zero(&conn); conn.listen_fd = l->fd; conn.fd = net_accept(l->fd, &conn.remote_ip, &conn.remote_port); if (conn.fd < 0) { diff --git a/src/lib-master/mountpoint-list.c b/src/lib-master/mountpoint-list.c index 46e9848d60..1efc53cabc 100644 --- a/src/lib-master/mountpoint-list.c +++ b/src/lib-master/mountpoint-list.c @@ -112,7 +112,7 @@ static int mountpoint_list_load(struct mountpoint_list *list) unsigned int len; int fd, ret = 0; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); fd = open(list->state_path, O_RDONLY); if (fd == -1) { @@ -294,7 +294,7 @@ int mountpoint_list_add_missing(struct mountpoint_list *list, struct mountpoint_iter *iter; const struct mountpoint *mnt; - memset(&new_rec, 0, sizeof(new_rec)); + i_zero(&new_rec); new_rec.state = default_state; new_rec.mounted = TRUE; diff --git a/src/lib-master/test-master-service-settings-cache.c b/src/lib-master/test-master-service-settings-cache.c index 8d9a4d2a3d..804abff137 100644 --- a/src/lib-master/test-master-service-settings-cache.c +++ b/src/lib-master/test-master-service-settings-cache.c @@ -101,7 +101,7 @@ int main(void) pool_t pool; int ret; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "module"; input.service = "service_name"; diff --git a/src/lib-ntlm/ntlm-message.c b/src/lib-ntlm/ntlm-message.c index 0a5c55f622..7a03dd80bc 100644 --- a/src/lib-ntlm/ntlm-message.c +++ b/src/lib-ntlm/ntlm-message.c @@ -86,7 +86,7 @@ static void ntlmssp_append_target_info(buffer_t *buf, size_t buffer_offset, ...) const char *data; type = va_arg(args, int); - memset(&info, 0, sizeof(info)); + i_zero(&info); write_le16(&info.type, type); switch (type) { @@ -151,7 +151,7 @@ ntlmssp_create_challenge(pool_t pool, const struct ntlmssp_request *request, buf = buffer_create_dynamic(pool, sizeof(struct ntlmssp_challenge)); - memset(&c, 0, sizeof(c)); + i_zero(&c); write_le64(&c.magic, NTLMSSP_MAGIC); write_le32(&c.type, NTLMSSP_MSG_TYPE2); write_le32(&c.flags, flags); diff --git a/src/lib-settings/settings-parser.c b/src/lib-settings/settings-parser.c index 5cf4f68042..25ae9b5750 100644 --- a/src/lib-settings/settings-parser.c +++ b/src/lib-settings/settings-parser.c @@ -111,7 +111,7 @@ copy_unique_defaults(struct setting_parser_context *ctx, } p_array_init(arr, ctx->set_pool, count + 4); - memset(&info, 0, sizeof(info)); + i_zero(&info); info = *def->list_info; for (i = 0; i < count; i++) T_BEGIN { @@ -582,7 +582,7 @@ get_deflist(struct setting_parser_context *ctx, struct setting_link *parent, if (change_result != NULL && !array_is_created(change_result)) p_array_init(change_result, ctx->set_pool, 5); - memset(&new_link, 0, sizeof(new_link)); + i_zero(&new_link); new_link.parent = parent; new_link.info = info; new_link.array = result; @@ -2002,8 +2002,8 @@ settings_copy_deflist_unique(const struct setting_define *def, return 0; type_offset = def->list_info->type_offset; - memset(&child_dest_link, 0, sizeof(child_dest_link)); - memset(&child_src_link, 0, sizeof(child_src_link)); + i_zero(&child_dest_link); + i_zero(&child_src_link); child_dest_link.info = child_src_link.info = def->list_info; diff --git a/src/lib-settings/settings.c b/src/lib-settings/settings.c index d0f96d1ab4..d9ce72ce12 100644 --- a/src/lib-settings/settings.c +++ b/src/lib-settings/settings.c @@ -195,7 +195,7 @@ bool settings_read_i(const char *path, const char *section, next_section = t_strcut(section, '/'); } - memset(&root, 0, sizeof(root)); + i_zero(&root); root.path = path; input = &root; diff --git a/src/lib-smtp/lmtp-client.c b/src/lib-smtp/lmtp-client.c index 1a6ad4017a..98020d2f1e 100644 --- a/src/lib-smtp/lmtp-client.c +++ b/src/lib-smtp/lmtp-client.c @@ -734,7 +734,7 @@ int lmtp_client_connect_tcp(struct lmtp_client *client, return -1; } - memset(&dns_lookup_set, 0, sizeof(dns_lookup_set)); + i_zero(&dns_lookup_set); dns_lookup_set.dns_client_socket_path = client->set.dns_client_socket_path; dns_lookup_set.timeout_msecs = LMTP_CLIENT_DNS_LOOKUP_TIMEOUT_MSECS; @@ -808,7 +808,7 @@ void lmtp_client_add_rcpt(struct lmtp_client *client, const char *address, { struct lmtp_recipient_params params; - memset(¶ms, 0, sizeof(params)); + i_zero(¶ms); lmtp_client_add_rcpt_params(client, address, ¶ms, rcpt_to_callback, data_callback, context); } diff --git a/src/lib-sql/driver-cassandra.c b/src/lib-sql/driver-cassandra.c index a619b08e2b..1a848c86ca 100644 --- a/src/lib-sql/driver-cassandra.c +++ b/src/lib-sql/driver-cassandra.c @@ -1195,7 +1195,7 @@ transaction_commit_callback(struct sql_result *result, void *context) struct cassandra_transaction_context *ctx = context; struct sql_commit_result commit_result; - memset(&commit_result, 0, sizeof(commit_result)); + i_zero(&commit_result); if (sql_result_next_row(result) < 0) { commit_result.error = sql_result_get_error(result); commit_result.error_type = sql_result_get_error_type(result); @@ -1213,7 +1213,7 @@ driver_cassandra_transaction_commit(struct sql_transaction_context *_ctx, enum cassandra_query_type query_type; struct sql_commit_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); ctx->callback = callback; ctx->context = context; diff --git a/src/lib-ssl-iostream/iostream-ssl.c b/src/lib-ssl-iostream/iostream-ssl.c index b34e9af706..9c8b90d527 100644 --- a/src/lib-ssl-iostream/iostream-ssl.c +++ b/src/lib-ssl-iostream/iostream-ssl.c @@ -30,7 +30,7 @@ static int ssl_module_load(const char **error_r) const char *plugin_name = "ssl_iostream_openssl"; struct module_dir_load_settings mod_set; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.setting_name = ""; mod_set.require_init_funcs = TRUE; diff --git a/src/lib-storage/index/dbox-common/dbox-save.c b/src/lib-storage/index/dbox-common/dbox-save.c index 151c806331..61f60cb94f 100644 --- a/src/lib-storage/index/dbox-common/dbox-save.c +++ b/src/lib-storage/index/dbox-common/dbox-save.c @@ -56,7 +56,7 @@ void dbox_save_begin(struct dbox_save_context *ctx, struct istream *input) i_stream_unref(&crlf_input); /* write a dummy header. it'll get rewritten when we're finished */ - memset(&dbox_msg_hdr, 0, sizeof(dbox_msg_hdr)); + i_zero(&dbox_msg_hdr); o_stream_cork(ctx->dbox_output); if (o_stream_send(ctx->dbox_output, &dbox_msg_hdr, sizeof(dbox_msg_hdr)) < 0) { @@ -141,7 +141,7 @@ void dbox_save_write_metadata(struct mail_save_context *_ctx, string_t *str; uoff_t vsize; - memset(&metadata_hdr, 0, sizeof(metadata_hdr)); + i_zero(&metadata_hdr); memcpy(metadata_hdr.magic_post, DBOX_MAGIC_POST, sizeof(metadata_hdr.magic_post)); o_stream_nsend(output, &metadata_hdr, sizeof(metadata_hdr)); diff --git a/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c b/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c index 7cb906c78a..b3da77787c 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c +++ b/src/lib-storage/index/dbox-multi/mdbox-deleted-storage.c @@ -183,7 +183,7 @@ static int mdbox_deleted_sync(struct mdbox_mailbox *mbox, if (mdbox_deleted_mailbox_create_indexes(&mbox->box, NULL, NULL) < 0) return -1; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.save_date = ioloop_time; sync_flags = index_storage_get_sync_flags(&mbox->box); diff --git a/src/lib-storage/index/dbox-multi/mdbox-map.c b/src/lib-storage/index/dbox-multi/mdbox-map.c index 28a424739f..3fb9500155 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-map.c +++ b/src/lib-storage/index/dbox-multi/mdbox-map.c @@ -259,7 +259,7 @@ mdbox_map_get_ext_hdr(struct mdbox_map *map, struct mail_index_view *view, size_t data_size; mail_index_get_header_ext(view, map->map_ext_id, &data, &data_size); - memset(hdr_r, 0, sizeof(*hdr_r)); + i_zero(hdr_r); memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r))); } @@ -382,7 +382,7 @@ int mdbox_map_view_lookup_rec(struct mdbox_map *map, const uint16_t *ref16_p; const void *data; - memset(rec_r, 0, sizeof(*rec_r)); + i_zero(rec_r); mail_index_lookup_uid(view, seq, &rec_r->map_uid); mail_index_lookup_ext(view, seq, map->map_ext_id, &data, NULL); @@ -414,7 +414,7 @@ int mdbox_map_get_file_msgs(struct mdbox_map *map, uint32_t file_id, return -1; hdr = mail_index_get_header(map->view); - memset(&msg, 0, sizeof(msg)); + i_zero(&msg); for (seq = 1; seq <= hdr->messages_count; seq++) { if (mdbox_map_view_lookup_rec(map, map->view, seq, &rec) < 0) return -1; @@ -1297,7 +1297,7 @@ int mdbox_map_append_assign_map_uids(struct mdbox_map_append_context *ctx, return -1; /* append map records to index */ - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); ref16 = 1; appends = array_get(&ctx->appends, &count); for (i = 0; i < count; i++) { @@ -1359,7 +1359,7 @@ int mdbox_map_append_move(struct mdbox_map_append_context *ctx, if (mdbox_map_assign_file_ids(ctx, FALSE, "purging - update uids") < 0) return -1; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); appends = array_get(&ctx->appends, &appends_count); next_uid = mail_index_get_header(ctx->atomic->sync_view)->next_uid; diff --git a/src/lib-storage/index/dbox-multi/mdbox-save.c b/src/lib-storage/index/dbox-multi/mdbox-save.c index e8f8f32641..ccb78c47c2 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-save.c +++ b/src/lib-storage/index/dbox-multi/mdbox-save.c @@ -257,7 +257,7 @@ mdbox_save_set_map_uids(struct mdbox_save_context *ctx, mdbox_update_header(mbox, ctx->ctx.trans, NULL); - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.save_date = ioloop_time; mails = array_get(&ctx->mails, &count); for (i = 0; i < count; i++) { @@ -446,7 +446,7 @@ int mdbox_copy(struct mail_save_context *_ctx, struct mail *mail) return mail_storage_copy(_ctx, mail); src_mbox = (struct mdbox_mailbox *)mail->box; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.save_date = ioloop_time; if (mdbox_mail_lookup(src_mbox, mail->transaction->view, mail->seq, &rec.map_uid) < 0) { diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c index 9d26bc2968..93a2a51893 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c +++ b/src/lib-storage/index/dbox-multi/mdbox-storage-rebuild.c @@ -312,7 +312,7 @@ rebuild_add_missing_map_uids(struct mdbox_storage_rebuild_context *ctx, unsigned int i, count; uint32_t seq; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); msgs = array_get_modifiable(&ctx->msgs, &count); for (i = 0; i < count; i++) { if (msgs[i]->map_uid != 0) @@ -425,7 +425,7 @@ rebuild_mailbox_multi(struct mdbox_storage_rebuild_context *ctx, mail_index_lookup_ext(view, old_seq, mbox->ext_id, &data, NULL); if (data == NULL) { - memset(&new_dbox_rec, 0, sizeof(new_dbox_rec)); + i_zero(&new_dbox_rec); map_uid = 0; } else { memcpy(&new_dbox_rec, data, sizeof(new_dbox_rec)); @@ -486,7 +486,7 @@ mdbox_rebuild_get_header(struct mail_index_view *view, uint32_t hdr_ext_id, size_t data_size; mail_index_get_header_ext(view, hdr_ext_id, &data, &data_size); - memset(hdr_r, 0, sizeof(*hdr_r)); + i_zero(hdr_r); memcpy(hdr_r, data, I_MIN(data_size, sizeof(*hdr_r))); *need_resize_r = data_size < sizeof(*hdr_r); } @@ -501,7 +501,7 @@ static void mdbox_header_update(struct mdbox_storage_rebuild_context *ctx, mdbox_rebuild_get_header(rebuild_ctx->view, mbox->hdr_ext_id, &hdr, &need_resize); if (rebuild_ctx->backup_view == NULL) { - memset(&backup_hdr, 0, sizeof(backup_hdr)); + i_zero(&backup_hdr); need_resize = TRUE; } else { mdbox_rebuild_get_header(rebuild_ctx->backup_view, @@ -647,7 +647,7 @@ static int rebuild_msg_mailbox_commit(struct rebuild_msg_mailbox *msg) if (mail_index_sync_commit(&msg->sync_ctx) < 0) return -1; mailbox_free(&msg->box); - memset(msg, 0, sizeof(*msg)); + i_zero(msg); return 0; } @@ -753,7 +753,7 @@ static int rebuild_restore_msg(struct mdbox_storage_rebuild_context *ctx, } /* add the new message */ - memset(&dbox_rec, 0, sizeof(dbox_rec)); + i_zero(&dbox_rec); dbox_rec.map_uid = msg->map_uid; dbox_rec.save_date = ioloop_time; mail_index_append(ctx->prev_msg.trans, ctx->prev_msg.next_uid++, &seq); @@ -917,7 +917,7 @@ static int mdbox_storage_rebuild_scan(struct mdbox_storage_rebuild_context *ctx) mail_index_get_header_ext(ctx->atomic->sync_view, ctx->storage->map->map_ext_id, &data, &data_size); - memset(&ctx->orig_map_hdr, 0, sizeof(ctx->orig_map_hdr)); + i_zero(&ctx->orig_map_hdr); memcpy(&ctx->orig_map_hdr, data, I_MIN(data_size, sizeof(ctx->orig_map_hdr))); ctx->highest_file_id = ctx->orig_map_hdr.highest_file_id; diff --git a/src/lib-storage/index/dbox-multi/mdbox-storage.c b/src/lib-storage/index/dbox-multi/mdbox-storage.c index 8a5e9f51b5..74586bf695 100644 --- a/src/lib-storage/index/dbox-multi/mdbox-storage.c +++ b/src/lib-storage/index/dbox-multi/mdbox-storage.c @@ -215,7 +215,7 @@ int mdbox_read_header(struct mdbox_mailbox *mbox, mdbox_storage_set_corrupted(mbox->storage); return -1; } - memset(hdr, 0, sizeof(*hdr)); + i_zero(hdr); if (data_size > 0) memcpy(hdr, data, I_MIN(data_size, sizeof(*hdr))); *need_resize_r = data_size < sizeof(*hdr); @@ -230,7 +230,7 @@ void mdbox_update_header(struct mdbox_mailbox *mbox, bool need_resize; if (mdbox_read_header(mbox, &hdr, &need_resize) < 0) { - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); need_resize = TRUE; } @@ -399,7 +399,7 @@ mdbox_mailbox_get_guid(struct mdbox_mailbox *mbox, guid_128_t guid_r) } if (mdbox_read_header(mbox, &hdr, &need_resize) < 0) - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); if (guid_128_is_empty(hdr.mailbox_guid)) { /* regenerate it */ diff --git a/src/lib-storage/index/dbox-single/sdbox-storage.c b/src/lib-storage/index/dbox-single/sdbox-storage.c index dbb85ff586..ed576798ea 100644 --- a/src/lib-storage/index/dbox-single/sdbox-storage.c +++ b/src/lib-storage/index/dbox-single/sdbox-storage.c @@ -162,7 +162,7 @@ int sdbox_read_header(struct sdbox_mailbox *mbox, } ret = -1; } else { - memset(hdr, 0, sizeof(*hdr)); + i_zero(hdr); memcpy(hdr, data, I_MIN(data_size, sizeof(*hdr))); if (guid_128_is_empty(hdr->mailbox_guid)) ret = -1; @@ -187,7 +187,7 @@ static void sdbox_update_header(struct sdbox_mailbox *mbox, bool need_resize; if (sdbox_read_header(mbox, &hdr, TRUE, &need_resize) < 0) { - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); need_resize = TRUE; } @@ -320,7 +320,7 @@ static int sdbox_mailbox_alloc_index(struct sdbox_mailbox *mbox) mail_index_ext_register(mbox->box.index, "dbox-hdr", sizeof(struct sdbox_index_header), 0, 0); /* set the initialization data in case the mailbox is created */ - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); guid_128_generate(hdr.mailbox_guid); mail_index_set_ext_init_data(mbox->box.index, mbox->hdr_ext_id, &hdr, sizeof(hdr)); @@ -349,7 +349,7 @@ static int sdbox_mailbox_open(struct mailbox *box) /* looks like the mailbox is corrupted */ (void)sdbox_sync(mbox, SDBOX_SYNC_FLAG_FORCE); if (sdbox_read_header(mbox, &hdr, TRUE, &need_resize) < 0) - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); } if (guid_128_is_empty(hdr.mailbox_guid)) { diff --git a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c index 65ba9d1446..5c3351a453 100644 --- a/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c +++ b/src/lib-storage/index/dbox-single/sdbox-sync-rebuild.c @@ -142,7 +142,7 @@ static void sdbox_sync_update_header(struct index_rebuild_context *ctx) bool need_resize; if (sdbox_read_header(mbox, &hdr, FALSE, &need_resize) < 0) - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); if (guid_128_is_empty(hdr.mailbox_guid)) guid_128_generate(hdr.mailbox_guid); if (++hdr.rebuild_count == 0) diff --git a/src/lib-storage/index/imapc/imapc-list.c b/src/lib-storage/index/imapc/imapc-list.c index 2d7327b6aa..f4c17f5c59 100644 --- a/src/lib-storage/index/imapc/imapc-list.c +++ b/src/lib-storage/index/imapc/imapc-list.c @@ -610,7 +610,7 @@ imapc_list_build_match_tree(struct imapc_mailbox_list_iterate_context *ctx) struct mailbox_node *node; const char *name; - memset(&update_ctx, 0, sizeof(update_ctx)); + i_zero(&update_ctx); update_ctx.iter_ctx = &ctx->ctx; update_ctx.tree_ctx = ctx->tree; update_ctx.glob = ctx->ctx.glob; diff --git a/src/lib-storage/index/imapc/imapc-storage.c b/src/lib-storage/index/imapc/imapc-storage.c index 54fb2b2f80..8a6e9a65b7 100644 --- a/src/lib-storage/index/imapc/imapc-storage.c +++ b/src/lib-storage/index/imapc/imapc-storage.c @@ -116,7 +116,7 @@ void imapc_copy_error_from_reply(struct imapc_storage *storage, void imapc_simple_context_init(struct imapc_simple_context *sctx, struct imapc_storage_client *client) { - memset(sctx, 0, sizeof(*sctx)); + i_zero(sctx); sctx->client = client; sctx->ret = -2; } @@ -261,7 +261,7 @@ int imapc_storage_client_create(struct mail_namespace *ns, struct imapc_client_settings set; string_t *str; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.host = imapc_set->imapc_host; if (*set.host == '\0') { *error_r = "missing imapc_host"; diff --git a/src/lib-storage/index/index-attachment.c b/src/lib-storage/index/index-attachment.c index a414cc726e..c91d2620da 100644 --- a/src/lib-storage/index/index-attachment.c +++ b/src/lib-storage/index/index-attachment.c @@ -45,7 +45,7 @@ static bool index_attachment_want(const struct istream_attachment_header *hdr, struct mail_save_context *ctx = context; struct mail_attachment_part apart; - memset(&apart, 0, sizeof(apart)); + i_zero(&apart); apart.part = hdr->part; apart.content_type = hdr->content_type; apart.content_disposition = hdr->content_disposition; @@ -168,7 +168,7 @@ void index_attachment_save_begin(struct mail_save_context *ctx, if (*storage->set->mail_attachment_dir == '\0') return; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.min_size = storage->set->mail_attachment_min_size; if (hash_format_init(storage->set->mail_attachment_hash, &set.hash_format, &error) < 0) { @@ -380,7 +380,7 @@ bool index_attachment_parse_extrefs(const char *line, pool_t pool, const char *decode_options = args[i+2]; const char *path = args[i+3]; - memset(&extref, 0, sizeof(extref)); + i_zero(&extref); if (str_to_uoff(start_offset_str, &extref.start_offset) < 0 || str_to_uoff(size_str, &extref.size) < 0 || extref.start_offset < last_voffset || diff --git a/src/lib-storage/index/index-attribute.c b/src/lib-storage/index/index-attribute.c index f3406c7e14..41d2a45840 100644 --- a/src/lib-storage/index/index-attribute.c +++ b/src/lib-storage/index/index-attribute.c @@ -119,7 +119,7 @@ index_storage_get_dict(struct mailbox *box, enum mail_attribute_type type, return -1; } - memset(&set, 0, sizeof(set)); + i_zero(&set); set.username = storage->user->username; set.base_dir = storage->user->set->base_dir; if (mail_user_get_home(storage->user, &set.home_dir) <= 0) @@ -229,7 +229,7 @@ int index_storage_attribute_get(struct mailbox_transaction_context *t, const char *mailbox_prefix; int ret; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); if (index_storage_get_dict(t->box, type, &dict, &mailbox_prefix) < 0) return -1; diff --git a/src/lib-storage/index/index-mail-binary.c b/src/lib-storage/index/index-mail-binary.c index 0644829e98..764470ca53 100644 --- a/src/lib-storage/index/index-mail-binary.c +++ b/src/lib-storage/index/index-mail-binary.c @@ -252,7 +252,7 @@ binary_parts_update(struct binary_ctx *ctx, const struct message_part *part, for (; part != NULL; part = part->next) { binary_parts_update(ctx, part->children, msg_bin_parts); - memset(&bin_part, 0, sizeof(bin_part)); + i_zero(&bin_part); /* default to unchanged header */ bin_part.binary_hdr_size = part->header_size.virtual_size; bin_part.physical_pos = part->physical_pos; @@ -370,7 +370,7 @@ index_mail_read_binary_to_cache(struct mail *_mail, struct binary_ctx ctx; struct istream *is; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.mail = _mail; t_array_init(&ctx.blocks, 8); diff --git a/src/lib-storage/index/index-mail-headers.c b/src/lib-storage/index/index-mail-headers.c index 131ddf48c6..f643a8fc68 100644 --- a/src/lib-storage/index/index-mail-headers.c +++ b/src/lib-storage/index/index-mail-headers.c @@ -144,7 +144,7 @@ get_header_field_idx(struct mailbox *box, const char *field, { struct mail_cache_field header_field; - memset(&header_field, 0, sizeof(header_field)); + i_zero(&header_field); header_field.type = MAIL_CACHE_FIELD_HEADER; header_field.decision = decision; T_BEGIN { @@ -255,7 +255,7 @@ void index_mail_parse_header_init(struct index_mail *mail, } mail->data.header_parser_initialized = TRUE; mail->data.parse_line_num = 0; - memset(&mail->data.parse_line, 0, sizeof(mail->data.parse_line)); + i_zero(&mail->data.parse_line); } static void index_mail_parse_finish_imap_envelope(struct index_mail *mail) diff --git a/src/lib-storage/index/index-mail.c b/src/lib-storage/index/index-mail.c index 7ffabe36e2..2d6939fa0d 100644 --- a/src/lib-storage/index/index-mail.c +++ b/src/lib-storage/index/index-mail.c @@ -1551,7 +1551,7 @@ static void index_mail_reset_data(struct index_mail *mail) { struct index_mail_data *data = &mail->data; - memset(data, 0, sizeof(*data)); + i_zero(data); p_clear(mail->mail.data_pool); data->virtual_size = (uoff_t)-1; diff --git a/src/lib-storage/index/index-mailbox-size.c b/src/lib-storage/index/index-mailbox-size.c index 0153a094b4..5980f23d50 100644 --- a/src/lib-storage/index/index-mailbox-size.c +++ b/src/lib-storage/index/index-mailbox-size.c @@ -70,7 +70,7 @@ static void vsize_header_refresh(struct mailbox_vsize_update *update) size); } update->rebuild = TRUE; - memset(&update->vsize_hdr, 0, sizeof(update->vsize_hdr)); + i_zero(&update->vsize_hdr); } } @@ -94,7 +94,7 @@ index_mailbox_vsize_check_rebuild(struct mailbox_vsize_update *update) } else { /* some messages have been expunged, rescan */ } - memset(&update->vsize_hdr, 0, sizeof(update->vsize_hdr)); + i_zero(&update->vsize_hdr); update->rebuild = TRUE; } } @@ -129,7 +129,7 @@ static bool vsize_update_lock_full(struct mailbox_vsize_update *update, return FALSE; perm = mailbox_get_permissions(box); - memset(&set, 0, sizeof(set)); + i_zero(&set); set.lock_timeout_secs = mail_storage_get_lock_timeout(box->storage, lock_secs); set.lock_method = box->storage->set->parsed_lock_method; @@ -221,14 +221,14 @@ void index_mailbox_vsize_hdr_expunge(struct mailbox_vsize_update *update, if (update->vsize_hdr.message_count == 0) { mail_storage_set_critical(update->box->storage, "vsize-hdr's message_count shrank below 0"); - memset(&update->vsize_hdr, 0, sizeof(update->vsize_hdr)); + i_zero(&update->vsize_hdr); return; } update->vsize_hdr.message_count--; if (update->vsize_hdr.vsize < vsize) { mail_storage_set_critical(update->box->storage, "vsize-hdr's vsize shrank below 0"); - memset(&update->vsize_hdr, 0, sizeof(update->vsize_hdr)); + i_zero(&update->vsize_hdr); return; } update->vsize_hdr.vsize -= vsize; diff --git a/src/lib-storage/index/index-pop3-uidl.c b/src/lib-storage/index/index-pop3-uidl.c index b5c8e0195d..282c870080 100644 --- a/src/lib-storage/index/index-pop3-uidl.c +++ b/src/lib-storage/index/index-pop3-uidl.c @@ -11,7 +11,7 @@ void index_pop3_uidl_set_max_uid(struct mailbox *box, { struct mailbox_index_pop3_uidl uidl; - memset(&uidl, 0, sizeof(uidl)); + i_zero(&uidl); uidl.max_uid_with_pop3_uidl = uid; mail_index_update_header_ext(trans, box->pop3_uidl_hdr_ext_id, diff --git a/src/lib-storage/index/index-rebuild.c b/src/lib-storage/index/index-rebuild.c index be093a4808..afece02906 100644 --- a/src/lib-storage/index/index-rebuild.c +++ b/src/lib-storage/index/index-rebuild.c @@ -132,7 +132,7 @@ index_rebuild_header(struct index_rebuild_context *ctx, } /* set highest-modseq */ - memset(&modseq_hdr, 0, sizeof(modseq_hdr)); + i_zero(&modseq_hdr); modseq_hdr.highest_modseq = mail_index_modseq_get_highest(ctx->view); if (ctx->backup_view != NULL) { modseq = mail_index_modseq_get_highest(ctx->backup_view); diff --git a/src/lib-storage/index/index-search-result.c b/src/lib-storage/index/index-search-result.c index e737d3ac7b..829e4af6ae 100644 --- a/src/lib-storage/index/index-search-result.c +++ b/src/lib-storage/index/index-search-result.c @@ -123,7 +123,7 @@ int index_search_result_update_flags(struct mail_search_result *result, /* add a temporary search parameter to limit the search only to the changed messages */ - memset(&search_arg, 0, sizeof(search_arg)); + i_zero(&search_arg); search_arg.type = SEARCH_UIDSET; search_arg.value.seqset = *uids; search_arg.next = result->search_args->args; @@ -152,7 +152,7 @@ int index_search_result_update_appends(struct mail_search_result *result, /* add a temporary search parameter to limit the search only to the new messages */ - memset(&search_arg, 0, sizeof(search_arg)); + i_zero(&search_arg); search_arg.type = SEARCH_SEQSET; t_array_init(&search_arg.value.seqset, 1); seq_range_array_add_range(&search_arg.value.seqset, diff --git a/src/lib-storage/index/index-search.c b/src/lib-storage/index/index-search.c index cfaf309dd9..2923d5014f 100644 --- a/src/lib-storage/index/index-search.c +++ b/src/lib-storage/index/index-search.c @@ -515,7 +515,7 @@ static void search_header_arg(struct mail_search_arg *arg, return; } - memset(&block, 0, sizeof(block)); + i_zero(&block); /* We're searching only for values, so drop header name and middle parts. We use header searching so that MIME words will be decoded. */ @@ -684,7 +684,7 @@ static int search_arg_match_text(struct mail_search_arg *args, if (!have_headers && !have_body) return -1; - memset(&hdr_ctx, 0, sizeof(hdr_ctx)); + i_zero(&hdr_ctx); hdr_ctx.index_ctx = ctx; /* hdr_ctx.imail is different from imail for mails in virtual mailboxes */ @@ -771,7 +771,7 @@ static int search_arg_match_text(struct mail_search_arg *args, i_stream_seek(input, hdr_size.physical_size); } - memset(&body_ctx, 0, sizeof(body_ctx)); + i_zero(&body_ctx); body_ctx.index_ctx = ctx; body_ctx.input = input; (void)mail_get_parts(ctx->cur_mail, &body_ctx.part); diff --git a/src/lib-storage/index/index-sort-string.c b/src/lib-storage/index/index-sort-string.c index 6c05743cde..0944467459 100644 --- a/src/lib-storage/index/index-sort-string.c +++ b/src/lib-storage/index/index-sort-string.c @@ -144,7 +144,7 @@ static void index_sort_reget_sort_ids(struct sort_string_context *ctx) array_clear(&ctx->zero_nodes); array_clear(&ctx->nonzero_nodes); - memset(&node, 0, sizeof(node)); + i_zero(&node); node.wanted = TRUE; seqs = array_get(&ctx->program->seqs, &count); for (i = 0; i < count; i++) { @@ -226,7 +226,7 @@ void index_sort_list_add_string(struct mail_search_sort_program *program, struct sort_string_context *ctx = program->context; struct mail_sort_node node; - memset(&node, 0, sizeof(node)); + i_zero(&node); node.seq = mail->seq; node.wanted = TRUE; @@ -742,7 +742,7 @@ static void index_sort_add_missing(struct sort_string_context *ctx) else { i_assert(next_seq < seqs[i]); for (seq = next_seq; seq < seqs[i]; seq++) { - memset(&node, 0, sizeof(node)); + i_zero(&node); node.seq = seq; index_sort_node_add(ctx, &node); } diff --git a/src/lib-storage/index/index-sort.c b/src/lib-storage/index/index-sort.c index bded618650..77e2dc830f 100644 --- a/src/lib-storage/index/index-sort.c +++ b/src/lib-storage/index/index-sort.c @@ -222,7 +222,7 @@ index_sort_list_finish_float(struct mail_search_sort_program *program) void index_sort_list_finish(struct mail_search_sort_program *program) { - memset(&static_node_cmp_context, 0, sizeof(static_node_cmp_context)); + i_zero(&static_node_cmp_context); static_node_cmp_context.program = program; static_node_cmp_context.mail = program->temp_mail; static_node_cmp_context.reverse = diff --git a/src/lib-storage/index/index-storage.c b/src/lib-storage/index/index-storage.c index d3521bfdea..ef4c0393d5 100644 --- a/src/lib-storage/index/index-storage.c +++ b/src/lib-storage/index/index-storage.c @@ -46,7 +46,7 @@ static void set_cache_decisions(struct mail_cache *cache, if (idx != UINT_MAX) { field = *mail_cache_register_get_field(cache, idx); } else if (strncasecmp(name, "hdr.", 4) == 0) { - memset(&field, 0, sizeof(field)); + i_zero(&field); field.name = name; field.type = MAIL_CACHE_FIELD_HEADER; } else { @@ -424,7 +424,7 @@ index_storage_mailbox_update_cache(struct mailbox *box, field = old_fields[j]; } else if (strncmp(updates[i].name, "hdr.", 4) == 0) { /* new header */ - memset(&field, 0, sizeof(field)); + i_zero(&field); field.name = updates[i].name; field.type = MAIL_CACHE_FIELD_HEADER; } else { @@ -836,7 +836,7 @@ void index_save_context_free(struct mail_save_context *ctx) i_free_and_null(ctx->data.guid); i_free_and_null(ctx->data.pop3_uidl); index_attachment_save_free(ctx); - memset(&ctx->data, 0, sizeof(ctx->data)); + i_zero(&ctx->data); ctx->unfinished = FALSE; } diff --git a/src/lib-storage/index/index-sync-changes.c b/src/lib-storage/index/index-sync-changes.c index 532a3aa724..763b09fd12 100644 --- a/src/lib-storage/index/index-sync-changes.c +++ b/src/lib-storage/index/index-sync-changes.c @@ -44,7 +44,7 @@ void index_sync_changes_deinit(struct index_sync_changes_context **_ctx) void index_sync_changes_reset(struct index_sync_changes_context *ctx) { array_clear(&ctx->syncs); - memset(&ctx->sync_rec, 0, sizeof(ctx->sync_rec)); + i_zero(&ctx->sync_rec); } void index_sync_changes_delete_to(struct index_sync_changes_context *ctx, @@ -112,7 +112,7 @@ void index_sync_changes_read(struct index_sync_changes_context *ctx, } if (!mail_index_sync_next(ctx->index_sync_ctx, sync_rec)) { - memset(sync_rec, 0, sizeof(*sync_rec)); + i_zero(sync_rec); break; } @@ -130,7 +130,7 @@ void index_sync_changes_read(struct index_sync_changes_context *ctx, sync_rec->uid1, sync_rec->uid2, &seq1, &seq2); - memset(sync_rec, 0, sizeof(*sync_rec)); + i_zero(sync_rec); if (seq1 == 0) break; diff --git a/src/lib-storage/index/index-sync.c b/src/lib-storage/index/index-sync.c index cbec04594f..c3c1b97087 100644 --- a/src/lib-storage/index/index-sync.c +++ b/src/lib-storage/index/index-sync.c @@ -517,7 +517,7 @@ void index_storage_list_index_update_sync(struct mailbox *box, return; } - memset(&new_rec, 0, sizeof(new_rec)); + i_zero(&new_rec); new_rec.size = st.st_size & 0xffffffffU; new_rec.mtime = st.st_mtime & 0xffffffffU; diff --git a/src/lib-storage/index/index-thread-finish.c b/src/lib-storage/index/index-thread-finish.c index ed4b9992e8..10f3930463 100644 --- a/src/lib-storage/index/index-thread-finish.c +++ b/src/lib-storage/index/index-thread-finish.c @@ -174,7 +174,7 @@ thread_sort_children(struct thread_finish_context *ctx, uint32_t parent_idx, struct mail_thread_child_node child; unsigned int count; - memset(&child, 0, sizeof(child)); + i_zero(&child); array_clear(sorted_children); /* add all child indexes to the array */ @@ -209,7 +209,7 @@ static void gather_base_subjects(struct thread_finish_context *ctx) const struct mail_thread_child_node *children; uint32_t idx, uid; - memset(&gather_ctx, 0, sizeof(gather_ctx)); + i_zero(&gather_ctx); gather_ctx.ctx = ctx; roots = array_get_modifiable(&ctx->roots, &count); @@ -321,7 +321,7 @@ static void mail_thread_root_thread_merge(struct thread_finish_context *ctx, the current message and the message in the subject table children of the dummy. Then replace the message in the subject table with the dummy message. */ - memset(&new_root, 0, sizeof(new_root)); + i_zero(&new_root); new_root.root_idx1 = array_count(&ctx->roots) + 1; new_root.node.idx = ctx->next_new_root_idx++; new_root.dummy = TRUE; @@ -466,8 +466,8 @@ static void mail_thread_create_shadows(struct thread_finish_context *ctx, ctx->use_sent_date = FALSE; - memset(&root, 0, sizeof(root)); - memset(&child, 0, sizeof(child)); + i_zero(&root); + i_zero(&child); /* We may see dummy messages without parents or children. We can't free them since the nodes are in an array, but they may get reused diff --git a/src/lib-storage/index/index-thread.c b/src/lib-storage/index/index-thread.c index 5824a16c26..4c42590715 100644 --- a/src/lib-storage/index/index-thread.c +++ b/src/lib-storage/index/index-thread.c @@ -579,7 +579,7 @@ int mail_thread_init(struct mailbox *box, struct mail_search_args *args, mail_thread_deinit(&ctx); return -1; } else { - memset(&ctx->added_uids, 0, sizeof(ctx->added_uids)); + i_zero(&ctx->added_uids); *ctx_r = ctx; return 0; } diff --git a/src/lib-storage/index/index-transaction.c b/src/lib-storage/index/index-transaction.c index db1f21914e..14e3dc3d20 100644 --- a/src/lib-storage/index/index-transaction.c +++ b/src/lib-storage/index/index-transaction.c @@ -185,7 +185,7 @@ int index_transaction_commit(struct mailbox_transaction_context *t, struct mail_index_transaction_commit_result result; int ret = 0; - memset(changes_r, 0, sizeof(*changes_r)); + i_zero(changes_r); changes_r->pool = pool_alloconly_create(MEMPOOL_GROWING "transaction changes", 512); p_array_init(&changes_r->saved_uids, changes_r->pool, 32); diff --git a/src/lib-storage/index/maildir/maildir-copy.c b/src/lib-storage/index/maildir/maildir-copy.c index 493708ebe9..69dfabb46b 100644 --- a/src/lib-storage/index/maildir/maildir-copy.c +++ b/src/lib-storage/index/maildir/maildir-copy.c @@ -80,7 +80,7 @@ maildir_copy_hardlink(struct mail_save_context *ctx, struct mail *mail) /* hard link to tmp/ with a newly generated filename and later when we have uidlist locked, move it to new/cur. */ dest_fname = maildir_filename_generate(); - memset(&do_ctx, 0, sizeof(do_ctx)); + i_zero(&do_ctx); do_ctx.dest_path = t_strdup_printf("%s/tmp/%s", mailbox_get_path(&dest_mbox->box), dest_fname); diff --git a/src/lib-storage/index/maildir/maildir-mail.c b/src/lib-storage/index/maildir/maildir-mail.c index 9c39127629..dba9f75453 100644 --- a/src/lib-storage/index/maildir/maildir-mail.c +++ b/src/lib-storage/index/maildir/maildir-mail.c @@ -722,7 +722,7 @@ maildir_mail_remove_sizes_from_filename(struct mail *mail, if (strchr(fname, MAILDIR_EXTRA_SEP) == NULL) return; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.physical_size = (uoff_t)-1; if (field == MAIL_FETCH_VIRTUAL_SIZE && maildir_filename_get_size(fname, MAILDIR_EXTRA_VIRTUAL_SIZE, diff --git a/src/lib-storage/index/maildir/maildir-sync-index.c b/src/lib-storage/index/maildir/maildir-sync-index.c index 347cd9a821..d618b3ce6c 100644 --- a/src/lib-storage/index/maildir/maildir-sync-index.c +++ b/src/lib-storage/index/maildir/maildir-sync-index.c @@ -485,7 +485,7 @@ int maildir_sync_index(struct maildir_index_sync_context *ctx, mailbox_recent_flags_reset(&mbox->box); first_uid = hdr->messages_count + 1; - memset(&empty_hdr, 0, sizeof(empty_hdr)); + i_zero(&empty_hdr); empty_hdr.next_uid = 1; hdr = &empty_hdr; } @@ -786,7 +786,7 @@ void maildir_list_index_update_sync(struct mailbox *box, return; old_rec = data; - memset(&new_rec, 0, sizeof(new_rec)); + i_zero(&new_rec); if (mhdr->new_check_time <= mhdr->new_mtime + MAILDIR_SYNC_SECS || mhdr->cur_check_time <= mhdr->cur_mtime + MAILDIR_SYNC_SECS) { /* dirty, we need a refresh next time */ diff --git a/src/lib-storage/index/maildir/maildir-uidlist.c b/src/lib-storage/index/maildir/maildir-uidlist.c index 1aba435ccc..17ba7edd8e 100644 --- a/src/lib-storage/index/maildir/maildir-uidlist.c +++ b/src/lib-storage/index/maildir/maildir-uidlist.c @@ -1990,7 +1990,7 @@ static void maildir_uidlist_swap(struct maildir_uidlist_sync_ctx *ctx) hash_table_destroy(&uidlist->files); uidlist->files = ctx->files; - memset(&ctx->files, 0, sizeof(ctx->files)); + i_zero(&ctx->files); if (uidlist->record_pool != NULL) pool_unref(&uidlist->record_pool); diff --git a/src/lib-storage/index/mbox/mbox-lock.c b/src/lib-storage/index/mbox/mbox-lock.c index 9b6ff4ffc4..9e35175e28 100644 --- a/src/lib-storage/index/mbox/mbox-lock.c +++ b/src/lib-storage/index/mbox/mbox-lock.c @@ -412,7 +412,7 @@ mbox_lock_dotlock_int(struct mbox_lock_context *ctx, int lock_type, bool try) ctx->dotlock_last_stale = TRUE; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.use_excl_lock = mbox->storage->storage.set->dotlock_use_excl; set.nfs_flush = mbox->storage->storage.set->mail_nfs_storage; set.timeout = mail_storage_get_lock_timeout(&mbox->storage->storage, @@ -607,7 +607,7 @@ static int mbox_lock_fcntl(struct mbox_lock_context *ctx, int lock_type, if (lock_type == F_UNLCK && ctx->mbox->mbox_fd == -1) return 1; - memset(&fl, 0, sizeof(fl)); + i_zero(&fl); fl.l_type = lock_type; fl.l_whence = SEEK_SET; fl.l_start = 0; @@ -724,7 +724,7 @@ static int mbox_update_locking(struct mbox_mailbox *mbox, int lock_type, mail_storage_get_lock_timeout(&mbox->storage->storage, mbox->storage->set->mbox_lock_timeout); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.mbox = mbox; if (mbox->mbox_lock_type == F_WRLCK) { @@ -874,7 +874,7 @@ int mbox_unlock(struct mbox_mailbox *mbox, unsigned int lock_id) if (mbox->mbox_stream != NULL) istream_raw_mbox_set_unlocked(mbox->mbox_stream); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.mbox = mbox; for (i = 0; i < MBOX_LOCK_COUNT; i++) diff --git a/src/lib-storage/index/mbox/mbox-save.c b/src/lib-storage/index/mbox/mbox-save.c index 3c8a48e6b3..d76dd389be 100644 --- a/src/lib-storage/index/mbox/mbox-save.c +++ b/src/lib-storage/index/mbox/mbox-save.c @@ -647,7 +647,7 @@ int mbox_save_continue(struct mail_save_context *_ctx) if (ctx->x_delivery_id_header != NULL) { struct message_header_line hdr; - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.name = ctx->x_delivery_id_header; hdr.name_len = sizeof("X-Delivery-ID")-1; hdr.middle = (const unsigned char *)hdr.name + diff --git a/src/lib-storage/index/mbox/mbox-sync-list-index.c b/src/lib-storage/index/mbox/mbox-sync-list-index.c index 5524733fdb..8393b308cf 100644 --- a/src/lib-storage/index/mbox/mbox-sync-list-index.c +++ b/src/lib-storage/index/mbox/mbox-sync-list-index.c @@ -83,7 +83,7 @@ void mbox_list_index_update_sync(struct mailbox *box, return; old_rec = data; - memset(&new_rec, 0, sizeof(new_rec)); + i_zero(&new_rec); new_rec.mtime = mhdr->sync_mtime; new_rec.size = mhdr->sync_size & 0xffffffffU; diff --git a/src/lib-storage/index/mbox/mbox-sync-parse.c b/src/lib-storage/index/mbox/mbox-sync-parse.c index 7f36f57044..f2e9cdb0f8 100644 --- a/src/lib-storage/index/mbox/mbox-sync-parse.c +++ b/src/lib-storage/index/mbox/mbox-sync-parse.c @@ -572,7 +572,7 @@ bool mbox_sync_parse_match_mail(struct mbox_mailbox *mbox, exists. */ mail_index_lookup_uid(view, seq, &uid); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); mbox_md5_ctx = mbox->md5_v.init(); hdr_ctx = message_parse_header_init(mbox->mbox_stream, NULL, 0); diff --git a/src/lib-storage/index/mbox/mbox-sync-rewrite.c b/src/lib-storage/index/mbox/mbox-sync-rewrite.c index 63bb4c125c..15555b9aa2 100644 --- a/src/lib-storage/index/mbox/mbox-sync-rewrite.c +++ b/src/lib-storage/index/mbox/mbox-sync-rewrite.c @@ -327,7 +327,7 @@ static int mbox_sync_read_next(struct mbox_sync_context *sync_ctx, unsigned int first_mail_expunge_extra; uint32_t orig_next_uid; - memset(mail_ctx, 0, sizeof(*mail_ctx)); + i_zero(mail_ctx); mail_ctx->sync_ctx = sync_ctx; mail_ctx->seq = seq; mail_ctx->header = sync_ctx->header; diff --git a/src/lib-storage/index/mbox/mbox-sync.c b/src/lib-storage/index/mbox/mbox-sync.c index 27b9383448..7335c5da08 100644 --- a/src/lib-storage/index/mbox/mbox-sync.c +++ b/src/lib-storage/index/mbox/mbox-sync.c @@ -138,7 +138,7 @@ mbox_sync_read_next_mail(struct mbox_sync_context *sync_ctx, return 0; p_clear(sync_ctx->mail_keyword_pool); - memset(mail_ctx, 0, sizeof(*mail_ctx)); + i_zero(mail_ctx); mail_ctx->sync_ctx = sync_ctx; mail_ctx->seq = ++sync_ctx->seq; mail_ctx->header = sync_ctx->header; @@ -719,7 +719,7 @@ static int mbox_sync_handle_header(struct mbox_sync_mail_context *mail_ctx) i_assert(postlf_from_offset != (uoff_t)-1); mail_ctx->mail.from_offset = postlf_from_offset; - memset(&mail, 0, sizeof(mail)); + i_zero(&mail); mail.expunged = TRUE; mail.offset = mail.from_offset = mail_ctx->mail.from_offset - @@ -815,7 +815,7 @@ mbox_sync_handle_missing_space(struct mbox_sync_mail_context *mail_ctx) /* mail_ctx may contain wrong data after rewrite, so make sure we don't try to access it */ - memset(mail_ctx, 0, sizeof(*mail_ctx)); + i_zero(mail_ctx); sync_ctx->need_space_seq = 0; sync_ctx->space_diff = 0; @@ -1699,7 +1699,7 @@ int mbox_sync_header_refresh(struct mbox_mailbox *mbox) &data, &data_size); if (data_size == 0) { /* doesn't exist yet. */ - memset(&mbox->mbox_hdr, 0, sizeof(mbox->mbox_hdr)); + i_zero(&mbox->mbox_hdr); return 0; } @@ -1902,7 +1902,7 @@ static int mbox_sync_int(struct mbox_mailbox *mbox, enum mbox_sync_flags flags, return 0; } - memset(&sync_ctx, 0, sizeof(sync_ctx)); + i_zero(&sync_ctx); sync_ctx.mbox = mbox; sync_ctx.keep_recent = (mbox->box.flags & MAILBOX_FLAG_DROP_RECENT) == 0; diff --git a/src/lib-storage/index/pop3c/pop3c-client.c b/src/lib-storage/index/pop3c/pop3c-client.c index 0b5081e65d..7694d10cfa 100644 --- a/src/lib-storage/index/pop3c/pop3c-client.c +++ b/src/lib-storage/index/pop3c/pop3c-client.c @@ -120,7 +120,7 @@ pop3c_client_init(const struct pop3c_client_settings *set) client->set.ssl_ca_file = p_strdup(pool, set->ssl_ca_file); client->set.ssl_verify = set->ssl_verify; - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); ssl_set.ca_dir = set->ssl_ca_dir; ssl_set.ca_file = set->ssl_ca_file; ssl_set.verify_remote_cert = set->ssl_verify; @@ -281,7 +281,7 @@ static int pop3c_client_dns_lookup(struct pop3c_client *client) client->ip = ips[0]; pop3c_client_connect_ip(client); } else { - memset(&dns_set, 0, sizeof(dns_set)); + i_zero(&dns_set); dns_set.dns_client_socket_path = client->set.dns_client_socket_path; dns_set.timeout_msecs = POP3C_DNS_LOOKUP_TIMEOUT_MSECS; @@ -566,7 +566,7 @@ static int pop3c_client_ssl_init(struct pop3c_client *client) return -1; } - memset(&ssl_set, 0, sizeof(ssl_set)); + i_zero(&ssl_set); if (client->set.ssl_verify) { ssl_set.verbose_invalid_cert = TRUE; ssl_set.verify_remote_cert = TRUE; @@ -804,7 +804,7 @@ int pop3c_client_cmd_line(struct pop3c_client *client, const char *cmdline, { struct pop3c_client_sync_cmd_ctx ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); pop3c_client_cmd_line_async(client, cmdline, pop3c_client_cmd_reply, &ctx); while (ctx.reply == NULL) pop3c_client_wait_one(client); @@ -876,7 +876,7 @@ int pop3c_client_cmd_stream(struct pop3c_client *client, const char *cmdline, return -1; } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); *input_r = pop3c_client_cmd_stream_async(client, cmdline, pop3c_client_cmd_reply, &ctx); while (ctx.reply == NULL) diff --git a/src/lib-storage/index/pop3c/pop3c-storage.c b/src/lib-storage/index/pop3c/pop3c-storage.c index 490cef1c75..0530f871b1 100644 --- a/src/lib-storage/index/pop3c/pop3c-storage.c +++ b/src/lib-storage/index/pop3c/pop3c-storage.c @@ -56,7 +56,7 @@ pop3c_client_create_from_set(struct mail_storage *storage, struct pop3c_client_settings client_set; string_t *str; - memset(&client_set, 0, sizeof(client_set)); + i_zero(&client_set); client_set.host = set->pop3c_host; client_set.port = set->pop3c_port; client_set.username = set->pop3c_user; diff --git a/src/lib-storage/index/pop3c/pop3c-sync.c b/src/lib-storage/index/pop3c/pop3c-sync.c index 6c6233a45f..4a320fba52 100644 --- a/src/lib-storage/index/pop3c/pop3c-sync.c +++ b/src/lib-storage/index/pop3c/pop3c-sync.c @@ -144,7 +144,7 @@ pop3c_get_local_msgs(pool_t pool, ARRAY_TYPE(pop3c_sync_msg) *local_msgs, struct pop3c_sync_msg msg; uint32_t seq; - memset(&msg, 0, sizeof(msg)); + i_zero(&msg); for (seq = 1; seq <= messages_count; seq++) { str_truncate(str, 0); if (mail_cache_lookup_field(cache_view, str, seq, diff --git a/src/lib-storage/list/mailbox-list-index-backend.c b/src/lib-storage/list/mailbox-list-index-backend.c index 4b19e03ce6..e114da720f 100644 --- a/src/lib-storage/list/mailbox-list-index-backend.c +++ b/src/lib-storage/list/mailbox-list-index-backend.c @@ -358,7 +358,7 @@ index_list_mailbox_create(struct mailbox *box, /* if no GUID is requested, generate it ourself. set UIDVALIDITY to index sometimes later. */ if (update == NULL) - memset(&new_update, 0, sizeof(new_update)); + i_zero(&new_update); else new_update = *update; if (guid_128_is_empty(new_update.mailbox_guid)) diff --git a/src/lib-storage/list/mailbox-list-index-notify.c b/src/lib-storage/list/mailbox-list-index-notify.c index 952d8f433f..c70117b5ab 100644 --- a/src/lib-storage/list/mailbox-list-index-notify.c +++ b/src/lib-storage/list/mailbox-list-index-notify.c @@ -172,7 +172,7 @@ notify_lookup_guid(struct mailbox_list_notify_index *inotify, } /* get GUID */ - memset(status_r, 0, sizeof(*status_r)); + i_zero(status_r); memset(guid_r, 0, GUID_128_SIZE); (void)mailbox_list_index_status(inotify->notify.list, view, seq, items, status_r, guid_r, NULL); @@ -573,7 +573,7 @@ mailbox_list_index_notify_lookup(struct mailbox_list_notify_index *inotify, const char *storage_name; char ns_sep = mailbox_list_get_hierarchy_sep(inotify->notify.list); - memset(rec, 0, sizeof(*rec)); + i_zero(rec); index_node = notify_lookup_guid(inotify, view, uid, items, status_r, rec->guid); if (index_node == NULL) @@ -625,7 +625,7 @@ mailbox_list_index_notify_subscribe(struct mailbox_list_notify_index *inotify, struct mailbox_list_notify_rec *rec = &inotify->notify_rec; const char *const *vnamep; - memset(rec, 0, sizeof(*rec)); + i_zero(rec); vnamep = array_idx(&inotify->new_subscriptions, idx); rec->vname = *vnamep; rec->storage_name = mailbox_list_get_storage_name(inotify->notify.list, @@ -641,7 +641,7 @@ mailbox_list_index_notify_unsubscribe(struct mailbox_list_notify_index *inotify, struct mailbox_list_notify_rec *rec = &inotify->notify_rec; const char *const *vnamep; - memset(rec, 0, sizeof(*rec)); + i_zero(rec); vnamep = array_idx(&inotify->new_unsubscriptions, idx); rec->vname = *vnamep; rec->storage_name = mailbox_list_get_storage_name(inotify->notify.list, @@ -698,7 +698,7 @@ mailbox_list_index_notify_change(struct mailbox_list_notify_index *inotify, rec->storage_name); if (nnode == NULL) { /* mailbox didn't exist earlier - report all events as new */ - memset(&empty_node, 0, sizeof(empty_node)); + i_zero(&empty_node); nnode = &empty_node; } if (nnode->uidvalidity != status.uidvalidity) @@ -791,7 +791,7 @@ int mailbox_list_index_notify_next(struct mailbox_list_notify *notify, } if (inotify->inbox_event_pending) { inotify->inbox_event_pending = FALSE; - memset(&inotify->notify_rec, 0, sizeof(inotify->notify_rec)); + i_zero(&inotify->notify_rec); inotify->notify_rec.vname = "INBOX"; inotify->notify_rec.storage_name = "INBOX"; /* Don't bother trying to figure out which event exactly this diff --git a/src/lib-storage/list/mailbox-list-index-status.c b/src/lib-storage/list/mailbox-list-index-status.c index 14504c72eb..4dde8ff0ce 100644 --- a/src/lib-storage/list/mailbox-list-index-status.c +++ b/src/lib-storage/list/mailbox-list-index-status.c @@ -292,7 +292,7 @@ index_list_get_cached_first_saved(struct mailbox *box, uint32_t seq; int ret; - memset(first_saved_r, 0, sizeof(*first_saved_r)); + i_zero(first_saved_r); if ((ret = index_list_open_view(box, TRUE, &view, &seq)) <= 0) return ret; @@ -407,7 +407,7 @@ index_list_update_fill_changes(struct mailbox *box, struct mailbox_metadata metadata; uint32_t seq1, seq2; - memset(changes_r, 0, sizeof(*changes_r)); + i_zero(changes_r); node = mailbox_list_index_lookup(box->list, box->name); if (node == NULL) @@ -460,7 +460,7 @@ index_list_first_saved_update_changes(struct mailbox *box, mail_index_lookup_ext(list_view, changes->seq, ilist->first_saved_ext_id, &data, &expunged); if (data == NULL) - memset(&first_saved, 0, sizeof(first_saved)); + i_zero(&first_saved); else memcpy(&first_saved, data, sizeof(first_saved)); if (mail_index_view_get_messages_count(box->view) > 0) @@ -484,8 +484,8 @@ index_list_has_changed(struct mailbox *box, struct mail_index_view *list_view, struct mailbox_index_vsize old_vsize; guid_128_t old_guid; - memset(&old_status, 0, sizeof(old_status)); - memset(&old_vsize, 0, sizeof(old_vsize)); + i_zero(&old_status); + i_zero(&old_vsize); memset(old_guid, 0, sizeof(old_guid)); (void)mailbox_list_index_status(box->list, list_view, changes->seq, CACHED_STATUS_ITEMS, @@ -537,7 +537,7 @@ index_list_update_first_saved(struct mailbox *box, time_t save_date; int ret = 0; - memset(&first_saved, 0, sizeof(first_saved)); + i_zero(&first_saved); first_saved.timestamp = (uint32_t)-1; if (changes->first_uid != 0) { @@ -595,7 +595,7 @@ index_list_update(struct mailbox *box, struct mail_index_view *list_view, if (changes->msgs_changed) { struct mailbox_list_index_msgs_record msgs; - memset(&msgs, 0, sizeof(msgs)); + i_zero(&msgs); msgs.messages = changes->status.messages; msgs.unseen = changes->status.unseen; msgs.recent = changes->status.recent; @@ -712,7 +712,7 @@ void mailbox_list_index_update_mailbox_index(struct mailbox *box, bool guid_changed = FALSE; int ret; - memset(&changes, 0, sizeof(changes)); + i_zero(&changes); if ((ret = index_list_open_view(box, TRUE, &list_view, &changes.seq)) <= 0) return; diff --git a/src/lib-storage/list/mailbox-list-index-sync.c b/src/lib-storage/list/mailbox-list-index-sync.c index 5eedd4f2d7..6eea8a27cf 100644 --- a/src/lib-storage/list/mailbox-list-index-sync.c +++ b/src/lib-storage/list/mailbox-list-index-sync.c @@ -34,7 +34,7 @@ node_add_to_index(struct mailbox_list_index_sync_context *ctx, struct mailbox_list_index_record irec; uint32_t seq; - memset(&irec, 0, sizeof(irec)); + i_zero(&irec); irec.name_id = node->name_id; if (node->parent != NULL) irec.parent_uid = node->parent->uid; @@ -485,7 +485,7 @@ int mailbox_list_index_sync_delete(struct mailbox_list_index_sync_context *sync_ i_assert(data != NULL && !expunged); memcpy(&rec, data, sizeof(rec)); rec.uid_validity = 0; - memset(&rec.guid, 0, sizeof(rec.guid)); + i_zero(&rec.guid); mail_index_update_ext(sync_ctx->trans, seq, sync_ctx->ilist->ext_id, &rec, NULL); } diff --git a/src/lib-storage/list/mailbox-list-iter.c b/src/lib-storage/list/mailbox-list-iter.c index 4a02f4b06e..fb17a663c8 100644 --- a/src/lib-storage/list/mailbox-list-iter.c +++ b/src/lib-storage/list/mailbox-list-iter.c @@ -467,7 +467,7 @@ mailbox_list_ns_prefix_return(struct ns_list_iterate_context *ctx, if (ns->prefix_len == 0 || !mailbox_list_ns_prefix_match(ctx, ns)) return FALSE; - memset(&ctx->ns_info, 0, sizeof(ctx->ns_info)); + i_zero(&ctx->ns_info); ctx->ns_info.ns = ns; ctx->ns_info.vname = p_strndup(ctx->pool, ns->prefix, ns->prefix_len-1); @@ -906,7 +906,7 @@ static bool autocreate_iter_autobox(struct mailbox_list_iterate_context *ctx, ctx->autocreate_ctx; enum imap_match_result match; - memset(&actx->new_info, 0, sizeof(actx->new_info)); + i_zero(&actx->new_info); actx->new_info.ns = ctx->list->ns; actx->new_info.vname = autobox->name; actx->new_info.flags = autobox->flags; diff --git a/src/lib-storage/list/mailbox-list-notify-tree.c b/src/lib-storage/list/mailbox-list-notify-tree.c index b2791188a1..1f2b7b65a5 100644 --- a/src/lib-storage/list/mailbox-list-notify-tree.c +++ b/src/lib-storage/list/mailbox-list-notify-tree.c @@ -26,7 +26,7 @@ mailbox_list_notify_node_get_status(struct mailbox_list_notify_tree *tree, if (!mail_index_lookup_seq(tree->view, nnode->index_uid, &seq)) return; - memset(&status, 0, sizeof(status)); + i_zero(&status); (void)mailbox_list_index_status(tree->list, tree->view, seq, STATUS_UIDVALIDITY | STATUS_UIDNEXT | STATUS_MESSAGES | STATUS_UNSEEN | STATUS_HIGHESTMODSEQ, &status, nnode->guid, NULL); diff --git a/src/lib-storage/list/mailbox-list-subscriptions.c b/src/lib-storage/list/mailbox-list-subscriptions.c index 03473bad83..338137f1c2 100644 --- a/src/lib-storage/list/mailbox-list-subscriptions.c +++ b/src/lib-storage/list/mailbox-list-subscriptions.c @@ -204,7 +204,7 @@ void mailbox_list_subscriptions_fill(struct mailbox_list_iterate_context *ctx, struct mailbox_tree_iterate_context *iter; const char *name; - memset(&update_ctx, 0, sizeof(update_ctx)); + i_zero(&update_ctx); update_ctx.iter_ctx = ctx; update_ctx.tree_ctx = tree; update_ctx.glob = ctx->glob; diff --git a/src/lib-storage/list/subscription-file.c b/src/lib-storage/list/subscription-file.c index d9f459090a..e6f234c5f4 100644 --- a/src/lib-storage/list/subscription-file.c +++ b/src/lib-storage/list/subscription-file.c @@ -132,7 +132,7 @@ int subsfile_set_subscribed(struct mailbox_list *list, const char *path, if (strcasecmp(name, "INBOX") == 0) name = "INBOX"; - memset(&dotlock_set, 0, sizeof(dotlock_set)); + i_zero(&dotlock_set); dotlock_set.use_excl_lock = mail_set->dotlock_use_excl; dotlock_set.nfs_flush = mail_set->mail_nfs_storage; dotlock_set.temp_prefix = temp_prefix; diff --git a/src/lib-storage/mail-search-args-simplify.c b/src/lib-storage/mail-search-args-simplify.c index d596e5341a..47e8b63e4b 100644 --- a/src/lib-storage/mail-search-args-simplify.c +++ b/src/lib-storage/mail-search-args-simplify.c @@ -58,7 +58,7 @@ mail_search_simplify_prev_arg_hash(const struct mail_search_simplify_prev_arg *a static void mail_search_arg_get_base_mask(const struct mail_search_arg *arg, struct mail_search_simplify_prev_arg *mask_r) { - memset(mask_r, 0, sizeof(*mask_r)); + i_zero(mask_r); mask_r->bin_mask.type = arg->type; mask_r->bin_mask.match_not = arg->match_not; mask_r->bin_mask.fuzzy = arg->fuzzy; @@ -503,7 +503,7 @@ mail_search_args_simplify_sub(struct mailbox *box, pool_t pool, struct mail_search_arg *sub, **all_argsp = argsp; bool merged; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.parent_and = parent_and; ctx.pool = pool_alloconly_create("mail search args simplify", 1024); hash_table_create(&ctx.prev_args, ctx.pool, 0, diff --git a/src/lib-storage/mail-search-build.c b/src/lib-storage/mail-search-build.c index 4b0b97e4ab..f7ea4437d3 100644 --- a/src/lib-storage/mail-search-build.c +++ b/src/lib-storage/mail-search-build.c @@ -145,7 +145,7 @@ int mail_search_build(struct mail_search_register *reg, *args_r = NULL; *error_r = NULL; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.args = args = mail_search_build_init(); ctx.pool = args->pool; ctx.reg = reg; diff --git a/src/lib-storage/mail-storage-hooks.c b/src/lib-storage/mail-storage-hooks.c index 7b181d756d..8079cf6d12 100644 --- a/src/lib-storage/mail-storage-hooks.c +++ b/src/lib-storage/mail-storage-hooks.c @@ -64,7 +64,7 @@ void mail_storage_hooks_add(struct module *module, { struct mail_storage_module_hooks new_hook; - memset(&new_hook, 0, sizeof(new_hook)); + i_zero(&new_hook); new_hook.module = module; new_hook.hooks = hooks; diff --git a/src/lib-storage/mail-storage-service.c b/src/lib-storage/mail-storage-service.c index bece664612..21581fbbca 100644 --- a/src/lib-storage/mail-storage-service.c +++ b/src/lib-storage/mail-storage-service.c @@ -317,7 +317,7 @@ service_auth_userdb_lookup(struct mail_storage_service_ctx *ctx, const char *new_username; int ret; - memset(&info, 0, sizeof(info)); + i_zero(&info); info.service = input->service != NULL ? input->service : ctx->service->name; info.local_ip = input->local_ip; @@ -445,7 +445,7 @@ mail_storage_service_get_var_expand_table(struct mail_storage_service_ctx *ctx, { struct mail_storage_service_privileges priv; - memset(&priv, 0, sizeof(priv)); + i_zero(&priv); priv.uid = (uid_t)-1; priv.gid = (gid_t)-1; return get_var_expand_table(ctx->service, NULL, input, &priv); @@ -479,7 +479,7 @@ service_parse_privileges(struct mail_storage_service_ctx *ctx, uid_t uid = (uid_t)-1; gid_t gid = (gid_t)-1; - memset(priv_r, 0, sizeof(*priv_r)); + i_zero(priv_r); if (*set->mail_uid != '\0') { if (!parse_uid(set->mail_uid, &uid, error_r)) { *error_r = t_strdup_printf("%s (from %s)", *error_r, @@ -969,7 +969,7 @@ int mail_storage_service_read_settings(struct mail_storage_service_ctx *ctx, flags = input == NULL ? ctx->flags : mail_storage_service_input_get_flags(ctx, input); - memset(&set_input, 0, sizeof(set_input)); + i_zero(&set_input); set_input.roots = ctx->set_roots; set_input.preserve_user = TRUE; /* settings reader may exec doveconf, which is going to clear @@ -1075,7 +1075,7 @@ mail_storage_service_load_modules(struct mail_storage_service_ctx *ctx, if ((ctx->flags & MAIL_STORAGE_SERVICE_FLAG_NO_PLUGINS) != 0) return 0; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.binary_name = master_service_get_name(ctx->service); mod_set.setting_name = "mail_plugins"; diff --git a/src/lib-storage/mail-storage.c b/src/lib-storage/mail-storage.c index d2e10a582e..1f6cb7eef7 100644 --- a/src/lib-storage/mail-storage.c +++ b/src/lib-storage/mail-storage.c @@ -1251,7 +1251,7 @@ void mail_storage_free_binary_cache(struct mail_storage *storage) timeout_remove(&storage->binary_cache.to); i_stream_destroy(&storage->binary_cache.input); - memset(&storage->binary_cache, 0, sizeof(storage->binary_cache)); + i_zero(&storage->binary_cache); } void mailbox_close(struct mailbox *box) @@ -1400,7 +1400,7 @@ int mailbox_mark_index_deleted(struct mailbox *box, bool del) static void mailbox_close_reset_path(struct mailbox *box) { - memset(&box->_perm, 0, sizeof(box->_perm)); + i_zero(&box->_perm); box->_path = NULL; box->_index_path = NULL; } @@ -1662,7 +1662,7 @@ static void mailbox_get_status_set_defaults(struct mailbox *box, struct mailbox_status *status_r) { - memset(status_r, 0, sizeof(*status_r)); + i_zero(status_r); if ((box->storage->class_flags & MAIL_STORAGE_CLASS_FLAG_HAVE_MAIL_GUIDS) != 0) status_r->have_guids = TRUE; if ((box->storage->class_flags & MAIL_STORAGE_CLASS_FLAG_HAVE_MAIL_SAVE_GUIDS) != 0) @@ -1700,7 +1700,7 @@ void mailbox_get_open_status(struct mailbox *box, int mailbox_get_metadata(struct mailbox *box, enum mailbox_metadata_items items, struct mailbox_metadata *metadata_r) { - memset(metadata_r, 0, sizeof(*metadata_r)); + i_zero(metadata_r); if (mailbox_verify_existing_name(box) < 0) return -1; @@ -1757,7 +1757,7 @@ int mailbox_sync_deinit(struct mailbox_sync_context **_ctx, *_ctx = NULL; - memset(status_r, 0, sizeof(*status_r)); + i_zero(status_r); ret = box->v.sync_deinit(ctx, status_r); if (ret < 0 && box->inbox_user && !box->storage->user->inbox_open_error_logged) { @@ -2417,7 +2417,7 @@ const struct mailbox_permissions *mailbox_get_permissions(struct mailbox *box) void mailbox_refresh_permissions(struct mailbox *box) { - memset(&box->_perm, 0, sizeof(box->_perm)); + i_zero(&box->_perm); (void)mailbox_get_permissions(box); } @@ -2568,7 +2568,7 @@ int mail_parse_human_timestamp(const char *str, time_t *timestamp_r, i_isdigit(str[5]) && i_isdigit(str[6]) && str[7] == '-' && i_isdigit(str[8]) && i_isdigit(str[9]) && str[10] == '\0') { /* yyyy-mm-dd */ - memset(&tm, 0, sizeof(tm)); + i_zero(&tm); tm.tm_year = (str[0]-'0') * 1000 + (str[1]-'0') * 100 + (str[2]-'0') * 10 + (str[3]-'0') - 1900; tm.tm_mon = (str[5]-'0') * 10 + (str[6]-'0') - 1; diff --git a/src/lib-storage/mail-user.c b/src/lib-storage/mail-user.c index e842788634..a3b3493684 100644 --- a/src/lib-storage/mail-user.c +++ b/src/lib-storage/mail-user.c @@ -337,7 +337,7 @@ static int mail_user_userdb_lookup_home(struct mail_user *user) i_assert(!user->home_looked_up); - memset(&info, 0, sizeof(info)); + i_zero(&info); info.service = user->service; if (user->local_ip != NULL) info.local_ip = *user->local_ip; @@ -485,7 +485,7 @@ mail_user_try_load_class_plugin(struct mail_user *user, const char *name) struct module *module; size_t name_len = strlen(name); - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.binary_name = master_service_get_name(master_service); mod_set.setting_name = ""; diff --git a/src/lib-storage/mailbox-attribute.c b/src/lib-storage/mailbox-attribute.c index 78e29131c4..ed227e8ea4 100644 --- a/src/lib-storage/mailbox-attribute.c +++ b/src/lib-storage/mailbox-attribute.c @@ -72,7 +72,7 @@ mailbox_internal_attribute_get(enum mail_attribute_type type, struct mailbox_attribute_internal dreg; unsigned int insert_idx; - memset(&dreg, 0, sizeof(dreg)); + i_zero(&dreg); dreg.type = type; dreg.key = key; @@ -115,7 +115,7 @@ mailbox_internal_attributes_get(enum mail_attribute_type type, plen--; } - memset(&dreg, 0, sizeof(dreg)); + i_zero(&dreg); dreg.type = type; dreg.key = bare_prefix; @@ -212,7 +212,7 @@ int mailbox_attribute_unset(struct mailbox_transaction_context *t, { struct mail_attribute_value value; - memset(&value, 0, sizeof(value)); + i_zero(&value); return mailbox_attribute_set_common(t, type, key, &value); } @@ -326,7 +326,7 @@ int mailbox_attribute_get(struct mailbox_transaction_context *t, struct mail_attribute_value *value_r) { int ret; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); if ((ret = mailbox_attribute_get_common(t, type, key, value_r)) <= 0) return ret; i_assert(value_r->value != NULL); @@ -339,7 +339,7 @@ int mailbox_attribute_get_stream(struct mailbox_transaction_context *t, { int ret; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); value_r->flags |= MAIL_ATTRIBUTE_VALUE_FLAG_INT_STREAMS; if ((ret = mailbox_attribute_get_common(t, type, key, value_r)) <= 0) return ret; diff --git a/src/lib-storage/mailbox-list.c b/src/lib-storage/mailbox-list.c index ec12e403ed..b62961cf8b 100644 --- a/src/lib-storage/mailbox-list.c +++ b/src/lib-storage/mailbox-list.c @@ -265,7 +265,7 @@ static const char *split_next_arg(const char *const **_args) void mailbox_list_settings_init_defaults(struct mailbox_list_settings *set_r) { - memset(set_r, 0, sizeof(*set_r)); + i_zero(set_r); set_r->mailbox_dir_name = ""; set_r->maildir_name = ""; set_r->list_index_fname = MAILBOX_LIST_INDEX_DEFAULT_PREFIX; @@ -879,7 +879,7 @@ mailbox_list_get_permissions_internal(struct mailbox_list *list, const char *path, *parent_name, *parent_path, *p; struct stat st; - memset(permissions_r, 0, sizeof(*permissions_r)); + i_zero(permissions_r); /* use safe defaults */ permissions_r->file_uid = (uid_t)-1; @@ -1593,7 +1593,7 @@ void mailbox_list_add_change(struct mailbox_list *list, stamp = list->changelog_timestamp != (time_t)-1 ? list->changelog_timestamp : ioloop_time; - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.type = type; memcpy(rec.mailbox_guid, mailbox_guid, sizeof(rec.mailbox_guid)); mailbox_log_record_set_timestamp(&rec, stamp); @@ -1844,8 +1844,8 @@ int mailbox_list_init_fs(struct mailbox_list *list, const char *driver, struct mailbox_list_fs_context *ctx; struct fs *parent_fs; - memset(&ssl_set, 0, sizeof(ssl_set)); - memset(&fs_set, 0, sizeof(fs_set)); + i_zero(&ssl_set); + i_zero(&fs_set); mail_user_init_fs_settings(list->ns->user, &fs_set, &ssl_set); fs_set.root_path = root_dir; fs_set.temp_file_prefix = mailbox_list_get_global_temp_prefix(list); diff --git a/src/lib/buffer.c b/src/lib/buffer.c index a350de14ee..9f2825f414 100644 --- a/src/lib/buffer.c +++ b/src/lib/buffer.c @@ -105,7 +105,7 @@ void buffer_create_from_data(buffer_t *buffer, void *data, size_t size) i_assert(sizeof(*buffer) >= sizeof(struct real_buffer)); buf = (struct real_buffer *)buffer; - memset(buf, 0, sizeof(*buf)); + i_zero(buf); buf->alloc = size; buf->r_buffer = buf->w_buffer = data; /* clear the whole memory area. unnecessary usually, but if the @@ -123,7 +123,7 @@ void buffer_create_from_const_data(buffer_t *buffer, i_assert(sizeof(*buffer) >= sizeof(struct real_buffer)); buf = (struct real_buffer *)buffer; - memset(buf, 0, sizeof(*buf)); + i_zero(buf); buf->used = buf->alloc = size; buf->r_buffer = data; diff --git a/src/lib/connection.c b/src/lib/connection.c index 844ffda70b..a671ff665f 100644 --- a/src/lib/connection.c +++ b/src/lib/connection.c @@ -299,7 +299,7 @@ int connection_client_connect(struct connection *conn) void connection_disconnect(struct connection *conn) { conn->last_input = 0; - memset(&conn->last_input_tv, 0, sizeof(conn->last_input_tv)); + i_zero(&conn->last_input_tv); if (conn->to != NULL) timeout_remove(&conn->to); if (conn->io != NULL) diff --git a/src/lib/failures.c b/src/lib/failures.c index f0ed869e14..7de32237b0 100644 --- a/src/lib/failures.c +++ b/src/lib/failures.c @@ -268,7 +268,7 @@ void i_panic(const char *format, ...) struct failure_context ctx; va_list args; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.type = LOG_TYPE_PANIC; va_start(args, format); @@ -281,7 +281,7 @@ void i_fatal(const char *format, ...) struct failure_context ctx; va_list args; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.type = LOG_TYPE_FATAL; ctx.exit_status = FATAL_DEFAULT; @@ -295,7 +295,7 @@ void i_fatal_status(int status, const char *format, ...) struct failure_context ctx; va_list args; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.type = LOG_TYPE_FATAL; ctx.exit_status = status; @@ -635,7 +635,7 @@ static bool line_is_ok(const char *line) void i_failure_parse_line(const char *line, struct failure_line *failure) { - memset(failure, 0, sizeof(*failure)); + i_zero(failure); if (!line_is_ok(line)) { failure->log_type = LOG_TYPE_ERROR; failure->text = line; diff --git a/src/lib/fd-close-on-exec.c b/src/lib/fd-close-on-exec.c index 7bcf399a27..88b7f670aa 100644 --- a/src/lib/fd-close-on-exec.c +++ b/src/lib/fd-close-on-exec.c @@ -50,7 +50,7 @@ void fd_debug_verify_leaks(int first_fd, int last_fd) } if (net_getpeername(first_fd, &raddr, &rport) < 0) { - memset(&raddr, 0, sizeof(raddr)); + i_zero(&raddr); rport = 0; } i_panic("Leaked socket fd %d: %s:%u -> %s:%u", diff --git a/src/lib/file-dotlock.c b/src/lib/file-dotlock.c index 79331e5c4f..59e297a5ce 100644 --- a/src/lib/file-dotlock.c +++ b/src/lib/file-dotlock.c @@ -488,7 +488,7 @@ dotlock_create(struct dotlock *dotlock, enum dotlock_create_flags flags, now + set->timeout; tmp_path = t_str_new(256); - memset(&lock_info, 0, sizeof(lock_info)); + i_zero(&lock_info); lock_info.path = dotlock->path; lock_info.set = set; lock_info.lock_path = lock_path; diff --git a/src/lib/file-lock.c b/src/lib/file-lock.c index eb67419ef8..c81b588c6f 100644 --- a/src/lib/file-lock.c +++ b/src/lib/file-lock.c @@ -72,7 +72,7 @@ file_lock_find_fcntl(int lock_fd, int lock_type) { struct flock fl; - memset(&fl, 0, sizeof(fl)); + i_zero(&fl); fl.l_type = lock_type; fl.l_whence = SEEK_SET; fl.l_start = 0; diff --git a/src/lib/file-set-size.c b/src/lib/file-set-size.c index 352bba5025..14fab267e9 100644 --- a/src/lib/file-set-size.c +++ b/src/lib/file-set-size.c @@ -93,7 +93,7 @@ int file_preallocate(int fd ATTR_UNUSED, off_t size ATTR_UNUSED) /* OSX */ fstore_t fs; - memset(&fs, 0, sizeof(fs)); + i_zero(&fs); fs.fst_flags = F_ALLOCATECONTIG; fs.fst_posmode = F_PEOFPOSMODE; fs.fst_offset = 0; diff --git a/src/lib/ioloop-epoll.c b/src/lib/ioloop-epoll.c index 1d636667e9..1cee9b2857 100644 --- a/src/lib/ioloop-epoll.c +++ b/src/lib/ioloop-epoll.c @@ -97,7 +97,7 @@ void io_loop_handle_add(struct io_file *io) first = ioloop_iolist_add(*list, io); - memset(&event, 0, sizeof(event)); + i_zero(&event); event.data.ptr = *list; event.events = epoll_event_mask(*list); @@ -136,7 +136,7 @@ void io_loop_handle_remove(struct io_file *io, bool closed) last = ioloop_iolist_del(*list, io); if (!closed) { - memset(&event, 0, sizeof(event)); + i_zero(&event); event.data.ptr = *list; event.events = epoll_event_mask(*list); diff --git a/src/lib/ioloop.c b/src/lib/ioloop.c index a04b98765e..eaef1b741f 100644 --- a/src/lib/ioloop.c +++ b/src/lib/ioloop.c @@ -856,7 +856,7 @@ void io_loop_context_add_callbacks(struct ioloop_context *ctx, { struct ioloop_context_callback cb; - memset(&cb, 0, sizeof(cb)); + i_zero(&cb); cb.activate = activate; cb.deactivate = deactivate; cb.context = context; diff --git a/src/lib/iso8601-date.c b/src/lib/iso8601-date.c index 642d496f60..010bd8654d 100644 --- a/src/lib/iso8601-date.c +++ b/src/lib/iso8601-date.c @@ -239,7 +239,7 @@ iso8601_date_do_parse(const unsigned char *data, size_t size, struct tm *tm_r, struct iso8601_date_parser parser; time_t timestamp; - memset(&parser, 0, sizeof(parser)); + i_zero(&parser); parser.cur = data; parser.end = data + size; diff --git a/src/lib/istream-sized.c b/src/lib/istream-sized.c index 810af19243..88e57a49e1 100644 --- a/src/lib/istream-sized.c +++ b/src/lib/istream-sized.c @@ -85,7 +85,7 @@ static ssize_t i_stream_sized_read(struct istream_private *stream) stream->buffer = i_stream_get_data(stream->parent, &pos); } while (pos <= stream->pos && ret > 0); - memset(&data, 0, sizeof(data)); + i_zero(&data); data.v_offset = stream->istream.v_offset; data.new_bytes = pos; data.wanted_size = sstream->size; diff --git a/src/lib/istream.c b/src/lib/istream.c index 80ad7d221f..45afd96623 100644 --- a/src/lib/istream.c +++ b/src/lib/istream.c @@ -874,7 +874,7 @@ i_stream_create(struct istream_private *_stream, struct istream *parent, int fd) if (_stream->init_buffer_size == 0) _stream->init_buffer_size = I_STREAM_MIN_SIZE; - memset(&_stream->statbuf, 0, sizeof(_stream->statbuf)); + i_zero(&_stream->statbuf); _stream->statbuf.st_size = -1; _stream->statbuf.st_atime = _stream->statbuf.st_mtime = diff --git a/src/lib/lib-signals.c b/src/lib/lib-signals.c index a0089afa38..dc8c94cc6b 100644 --- a/src/lib/lib-signals.c +++ b/src/lib/lib-signals.c @@ -108,7 +108,7 @@ static void sig_handler(int signo) if (si == NULL) { /* Solaris can leave this to NULL */ - memset(&tmp_si, 0, sizeof(tmp_si)); + i_zero(&tmp_si); tmp_si.si_signo = signo; tmp_si.si_code = SI_NOINFO; si = &tmp_si; diff --git a/src/lib/md4.c b/src/lib/md4.c index 72e2ff85d5..c90c6d10ec 100644 --- a/src/lib/md4.c +++ b/src/lib/md4.c @@ -257,7 +257,7 @@ void md4_final(struct md4_context *ctx, unsigned char result[STATIC_ARRAY MD4_RE result[14] = ctx->d >> 16; result[15] = ctx->d >> 24; - safe_memset(ctx, 0, sizeof(*ctx)); + i_zero_safe(ctx); } void md4_get_digest(const void *data, size_t size, diff --git a/src/lib/md5.c b/src/lib/md5.c index 70cf171c67..2bf6a57cec 100644 --- a/src/lib/md5.c +++ b/src/lib/md5.c @@ -272,7 +272,7 @@ md5_final(struct md5_context *ctx, unsigned char result[STATIC_ARRAY MD5_RESULTL result[14] = ctx->d >> 16; result[15] = ctx->d >> 24; - safe_memset(ctx, 0, sizeof(*ctx)); + i_zero_safe(ctx); } void md5_get_digest(const void *data, size_t size, diff --git a/src/lib/mempool-alloconly.c b/src/lib/mempool-alloconly.c index bf3c94a8bf..698cb417db 100644 --- a/src/lib/mempool-alloconly.c +++ b/src/lib/mempool-alloconly.c @@ -130,7 +130,7 @@ pool_t pool_alloconly_create(const char *name ATTR_UNUSED, size_t size) #endif /* create a fake alloconly_pool so we can call block_alloc() */ - memset(&apool, 0, sizeof(apool)); + i_zero(&apool); apool.pool = static_alloconly_pool; apool.refcount = 1; diff --git a/src/lib/mountpoint.c b/src/lib/mountpoint.c index 685aab4657..fa05a4b1ce 100644 --- a/src/lib/mountpoint.c +++ b/src/lib/mountpoint.c @@ -65,7 +65,7 @@ mountpoint_get_statvfs(const char *path, pool_t pool, { struct statvfs buf; - memset(point_r, 0, sizeof(*point_r)); + i_zero(point_r); if (statvfs(path, &buf) < 0) { if (errno == ENOENT) return 0; @@ -89,7 +89,7 @@ mountpoint_get_statvfs(const char *path, pool_t pool, int mountpoint_get(const char *path, pool_t pool, struct mountpoint *point_r) { #ifdef MOUNTPOINT_UNKNOWN - memset(point_r, 0, sizeof(*point_r)); + i_zero(point_r); errno = ENOSYS; return -1; #elif defined (MOUNTPOINT_STATVFS) @@ -101,7 +101,7 @@ int mountpoint_get(const char *path, pool_t pool, struct mountpoint *point_r) const struct mountpoint *mnt; struct stat st; - memset(point_r, 0, sizeof(*point_r)); + i_zero(point_r); if (stat(path, &st) < 0) { if (errno == ENOENT) return 0; @@ -213,7 +213,7 @@ const struct mountpoint *mountpoint_iter_next(struct mountpoint_iter *iter) vmt_object = vmt_base + vmt->vmt_data[VMT_OBJECT].vmt_off; vmt_stub = vmt_base + vmt->vmt_data[VMT_STUB].vmt_off; - memset(&iter->mnt, 0, sizeof(iter->mnt)); + i_zero(&iter->mnt); switch (vmt->vmt_gfstype) { case MNT_NFS: case MNT_NFS3: @@ -249,7 +249,7 @@ const struct mountpoint *mountpoint_iter_next(struct mountpoint_iter *iter) if (iter->f == NULL) return NULL; - memset(&iter->mnt, 0, sizeof(iter->mnt)); + i_zero(&iter->mnt); while ((getextmntent(iter->f, &ent.ext, sizeof(ent.ext))) == 0) { if (hasmntopt(&ent.ent, MNTOPT_IGNORE) != NULL) continue; @@ -272,7 +272,7 @@ const struct mountpoint *mountpoint_iter_next(struct mountpoint_iter *iter) if (iter->f == NULL) return NULL; - memset(&iter->mnt, 0, sizeof(iter->mnt)); + i_zero(&iter->mnt); while ((ent = getmntent(iter->f)) != NULL) { if (strcmp(ent->mnt_type, MNTTYPE_SWAP) == 0 || strcmp(ent->mnt_type, MNTTYPE_IGNORE) == 0 || diff --git a/src/lib/net.c b/src/lib/net.c index 4c69399450..e6df547146 100644 --- a/src/lib/net.c +++ b/src/lib/net.c @@ -127,7 +127,7 @@ sin_get_ip(const union sockaddr_union *so, struct ip_addr *ip) { /* IP structs may be sent across processes. Clear the whole struct first to make sure it won't leak any data across processes. */ - memset(ip, 0, sizeof(*ip)); + i_zero(ip); ip->family = so->sin.sin_family; @@ -139,7 +139,7 @@ sin_get_ip(const union sockaddr_union *so, struct ip_addr *ip) if (ip->family == AF_INET) memcpy(&ip->u.ip4, &so->sin.sin_addr, sizeof(ip->u.ip4)); else - memset(&ip->u, 0, sizeof(ip->u)); + i_zero(&ip->u); } static inline void sin_set_port(union sockaddr_union *so, in_port_t port) @@ -176,7 +176,7 @@ static int net_connect_ip_once(const struct ip_addr *ip, in_port_t port, } /* create the socket */ - memset(&so, 0, sizeof(so)); + i_zero(&so); so.sin.sin_family = ip->family; fd = socket(ip->family, sock_type, 0); @@ -267,7 +267,7 @@ int net_try_bind(const struct ip_addr *ip) int fd; /* create the socket */ - memset(&so, 0, sizeof(so)); + i_zero(&so); so.sin.sin_family = ip->family; fd = socket(ip->family, SOCK_STREAM, 0); if (fd == -1) { @@ -289,7 +289,7 @@ int net_connect_unix(const char *path) union sockaddr_union_unix sa; int fd, ret; - memset(&sa, 0, sizeof(sa)); + i_zero(&sa); sa.un.sun_family = AF_UNIX; if (i_strocpy(sa.un.sun_path, path, sizeof(sa.un.sun_path)) < 0) { /* too long path */ @@ -437,7 +437,7 @@ int net_listen_full(const struct ip_addr *my_ip, in_port_t *port, int ret, fd, opt = 1; socklen_t len; - memset(&so, 0, sizeof(so)); + i_zero(&so); sin_set_port(&so, *port); sin_set_ip(&so, my_ip); @@ -514,7 +514,7 @@ int net_listen_unix(const char *path, int backlog) } sa; int fd; - memset(&sa, 0, sizeof(sa)); + i_zero(&sa); sa.un.sun_family = AF_UNIX; if (i_strocpy(sa.un.sun_path, path, sizeof(sa.un.sun_path)) < 0) { /* too long path */ @@ -601,7 +601,7 @@ int net_accept(int fd, struct ip_addr *addr_r, in_port_t *port_r) } if (so.sin.sin_family == AF_UNIX) { if (addr_r != NULL) - memset(addr_r, 0, sizeof(*addr_r)); + i_zero(addr_r); if (port_r != NULL) *port_r = 0; } else { if (addr_r != NULL) sin_get_ip(&so, addr_r); @@ -735,7 +735,7 @@ int net_gethostbyaddr(const struct ip_addr *ip, const char **name_r) char hbuf[NI_MAXHOST]; int ret; - memset(&so, 0, sizeof(so)); + i_zero(&so); sin_set_ip(&so, ip); ret = getnameinfo(&so.sa, addrlen, hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD); @@ -758,7 +758,7 @@ int net_getsockname(int fd, struct ip_addr *addr, in_port_t *port) return -1; if (so.sin.sin_family == AF_UNIX) { if (addr != NULL) - memset(addr, 0, sizeof(*addr)); + i_zero(addr); if (port != NULL) *port = 0; } else { if (addr != NULL) sin_get_ip(&so, addr); @@ -779,7 +779,7 @@ int net_getpeername(int fd, struct ip_addr *addr, in_port_t *port) return -1; if (so.sin.sin_family == AF_UNIX) { if (addr != NULL) - memset(addr, 0, sizeof(*addr)); + i_zero(addr); if (port != NULL) *port = 0; } else { if (addr != NULL) sin_get_ip(&so, addr); diff --git a/src/lib/ostream.c b/src/lib/ostream.c index f0ff4aba81..fa41b88a72 100644 --- a/src/lib/ostream.c +++ b/src/lib/ostream.c @@ -230,7 +230,7 @@ ssize_t o_stream_send(struct ostream *stream, const void *data, size_t size) { struct const_iovec iov; - memset(&iov, 0, sizeof(iov)); + i_zero(&iov); iov.iov_base = data; iov.iov_len = size; @@ -278,7 +278,7 @@ void o_stream_nsend(struct ostream *stream, const void *data, size_t size) { struct const_iovec iov; - memset(&iov, 0, sizeof(iov)); + i_zero(&iov); iov.iov_base = data; iov.iov_len = size; diff --git a/src/lib/restrict-access.c b/src/lib/restrict-access.c index 3b59e681d1..cb6d44f301 100644 --- a/src/lib/restrict-access.c +++ b/src/lib/restrict-access.c @@ -23,7 +23,7 @@ static char *chroot_dir = NULL; void restrict_access_init(struct restrict_access_settings *set) { - memset(set, 0, sizeof(*set)); + i_zero(set); set->uid = (uid_t)-1; set->gid = (gid_t)-1; diff --git a/src/lib/sendfile-util.c b/src/lib/sendfile-util.c index a47047ddd8..fd0f8bf284 100644 --- a/src/lib/sendfile-util.c +++ b/src/lib/sendfile-util.c @@ -73,7 +73,7 @@ ssize_t safe_sendfile(int out_fd, int in_fd, uoff_t *offset, size_t count) return 0; } - memset(&hdtr, 0, sizeof(hdtr)); + i_zero(&hdtr); ret = sendfile(in_fd, out_fd, *offset, count, &hdtr, &sbytes, 0); *offset += sbytes; diff --git a/src/lib/seq-range-array.c b/src/lib/seq-range-array.c index 0d45735fbb..5239a3d3de 100644 --- a/src/lib/seq-range-array.c +++ b/src/lib/seq-range-array.c @@ -484,7 +484,7 @@ void seq_range_array_invert(ARRAY_TYPE(seq_range) *array, void seq_range_array_iter_init(struct seq_range_iter *iter_r, const ARRAY_TYPE(seq_range) *array) { - memset(iter_r, 0, sizeof(*iter_r)); + i_zero(iter_r); iter_r->array = array; } diff --git a/src/lib/sha3.c b/src/lib/sha3.c index 67c4476456..657167850c 100644 --- a/src/lib/sha3.c +++ b/src/lib/sha3.c @@ -115,14 +115,14 @@ keccakf(uint64_t s[25]) void sha3_256_init(void *context) { struct sha3_ctx *ctx = context; - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ctx->capacityWords = 2 * 256 / (8 * sizeof(uint64_t)); } void sha3_512_init(void *context) { struct sha3_ctx *ctx = context; - memset(ctx, 0, sizeof(*ctx)); + i_zero(ctx); ctx->capacityWords = 2 * 512 / (8 * sizeof(uint64_t)); } diff --git a/src/lib/test-ioloop.c b/src/lib/test-ioloop.c index 68f8dfabeb..db6d14f50a 100644 --- a/src/lib/test-ioloop.c +++ b/src/lib/test-ioloop.c @@ -56,7 +56,7 @@ static void test_ioloop_fd(void) return; } - memset(&test_ctx, 0, sizeof(test_ctx)); + i_zero(&test_ctx); struct ioloop *ioloop = io_loop_create(); diff --git a/src/lib/test-utc-mktime.c b/src/lib/test-utc-mktime.c index 6a9893dd99..1a15babf41 100644 --- a/src/lib/test-utc-mktime.c +++ b/src/lib/test-utc-mktime.c @@ -39,7 +39,7 @@ void test_utc_mktime(void) bool success; for (i = 0; i < N_ELEMENTS(input); i++) { - memset(&tm, 0, sizeof(tm)); + i_zero(&tm); tm.tm_year = input[i].year - 1900; tm.tm_mon = input[i].month - 1; tm.tm_mday = input[i].day; diff --git a/src/lib/timing.c b/src/lib/timing.c index 604f102a3f..161b7a828c 100644 --- a/src/lib/timing.c +++ b/src/lib/timing.c @@ -29,7 +29,7 @@ void timing_deinit(struct timing **_timing) void timing_reset(struct timing *timing) { - memset(timing, 0, sizeof(*timing)); + i_zero(timing); } void timing_add_usecs(struct timing *timing, uint64_t usecs) diff --git a/src/lib/uri-util.c b/src/lib/uri-util.c index 4f81c8064d..1530c78aa3 100644 --- a/src/lib/uri-util.c +++ b/src/lib/uri-util.c @@ -529,7 +529,7 @@ int uri_parse_authority(struct uri_parser *parser, */ if (auth != NULL) - memset(auth, 0, sizeof(*auth)); + i_zero(auth); /* Scan ahead to check whether there is a [userinfo "@"] uri component */ for (p = parser->cur; p < parser->end; p++){ @@ -645,7 +645,7 @@ int uri_parse_path(struct uri_parser *parser, if (path_r != NULL) p_array_init(&segments, parser->pool, 16); else - memset(&segments, 0, sizeof(segments)); + i_zero(&segments); /* check for a leading '/' and indicate absolute path when it is present diff --git a/src/lib/var-expand.c b/src/lib/var-expand.c index 78f9a69698..b17aa824f6 100644 --- a/src/lib/var-expand.c +++ b/src/lib/var-expand.c @@ -437,7 +437,7 @@ void var_expand_with_funcs(string_t *dest, const char *str, unsigned int i, modifier_count; size_t len; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); for (; *str != '\0'; str++) { if (*str != '%') str_append_c(dest, *str); @@ -445,7 +445,7 @@ void var_expand_with_funcs(string_t *dest, const char *str, int sign = 1; str++; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); /* [.][] */ if (*str == '-') { diff --git a/src/lmtp/client.c b/src/lmtp/client.c index 6bf435486a..6911fef82d 100644 --- a/src/lmtp/client.c +++ b/src/lmtp/client.c @@ -179,7 +179,7 @@ static void client_read_settings(struct client *client) struct lda_settings *lda_set; const char *error; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "lmtp"; input.local_ip = client->local_ip; input.remote_ip = client->remote_ip; @@ -389,7 +389,7 @@ void client_state_reset(struct client *client, const char *state_name) i_error("close(mail data fd) failed: %m"); } - memset(&client->state, 0, sizeof(client->state)); + i_zero(&client->state); p_clear(client->state_pool); client->state.mail_data_fd = -1; diff --git a/src/lmtp/commands.c b/src/lmtp/commands.c index c4f8d608a8..9fc1daac00 100644 --- a/src/lmtp/commands.c +++ b/src/lmtp/commands.c @@ -330,11 +330,11 @@ static bool client_proxy_rcpt(struct client *client, const char *address, pool_t pool; int ret; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "lmtp"; mail_storage_service_init_settings(storage_service, &input); - memset(&info, 0, sizeof(info)); + i_zero(&info); info.service = master_service_get_name(master_service); info.local_ip = client->local_ip; info.remote_ip = client->remote_ip; @@ -358,7 +358,7 @@ static bool client_proxy_rcpt(struct client *client, const char *address, } } - memset(&set, 0, sizeof(set)); + i_zero(&set); set.port = client->local_port; set.protocol = LMTP_CLIENT_PROTOCOL_LMTP; set.timeout_msecs = LMTP_PROXY_DEFAULT_TIMEOUT_MSECS; @@ -402,7 +402,7 @@ static bool client_proxy_rcpt(struct client *client, const char *address, if (client->proxy == NULL) { struct lmtp_proxy_settings proxy_set; - memset(&proxy_set, 0, sizeof(proxy_set)); + i_zero(&proxy_set); proxy_set.my_hostname = client->my_domain; proxy_set.dns_client_socket_path = dns_client_socket_path; proxy_set.session_id = client->state.session_id; @@ -697,7 +697,7 @@ int cmd_rcpt(struct client *client, const char *args) array_count(&client->state.rcpt_to)+1); } - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "lmtp"; input.username = username; input.local_ip = client->local_ip; @@ -852,7 +852,7 @@ client_deliver(struct client *client, const struct mail_recipient *rcpt, settings_var_expand(&lda_setting_parser_info, lda_set, client->pool, mail_user_var_expand_table(client->state.dest_user)); - memset(&dctx, 0, sizeof(dctx)); + i_zero(&dctx); dctx.session = session; dctx.pool = session->pool; dctx.set = lda_set; diff --git a/src/lmtp/lmtp-proxy.c b/src/lmtp/lmtp-proxy.c index 7066251f5b..9ac456d85e 100644 --- a/src/lmtp/lmtp-proxy.c +++ b/src/lmtp/lmtp-proxy.c @@ -135,7 +135,7 @@ lmtp_proxy_get_connection(struct lmtp_proxy *proxy, return conn; } - memset(&client_set, 0, sizeof(client_set)); + i_zero(&client_set); client_set.mail_from = proxy->mail_from; client_set.my_hostname = proxy->set.my_hostname; client_set.dns_client_socket_path = proxy->set.dns_client_socket_path; diff --git a/src/lmtp/main.c b/src/lmtp/main.c index 61a64e5aa6..8f48316011 100644 --- a/src/lmtp/main.c +++ b/src/lmtp/main.c @@ -46,7 +46,7 @@ static void drop_privileges(void) struct master_service_settings_input input; struct master_service_settings_output output; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "lmtp"; input.service = "lmtp"; (void)master_service_settings_read(master_service, @@ -59,7 +59,7 @@ static void main_init(void) struct master_service_connection conn; if (IS_STANDALONE()) { - memset(&conn, 0, sizeof(conn)); + i_zero(&conn); (void)client_create(STDIN_FILENO, STDOUT_FILENO, &conn); } dns_client_socket_path = t_abspath(DNS_CLIENT_SOCKET_PATH); diff --git a/src/log/log-connection.c b/src/log/log-connection.c index e963316751..396228a4ff 100644 --- a/src/log/log-connection.c +++ b/src/log/log-connection.c @@ -135,7 +135,7 @@ client_log_ctx(struct log_connection *log, case LOG_TYPE_ERROR: case LOG_TYPE_FATAL: case LOG_TYPE_PANIC: - memset(&err, 0, sizeof(err)); + i_zero(&err); err.type = ctx->type; err.timestamp = log_time->tv_sec; err.prefix = prefix; @@ -156,7 +156,7 @@ client_log_fatal(struct log_connection *log, struct log_client *client, struct failure_context failure_ctx; const char *prefix = log->default_prefix; - memset(&failure_ctx, 0, sizeof(failure_ctx)); + i_zero(&failure_ctx); failure_ctx.type = LOG_TYPE_FATAL; failure_ctx.timestamp = tm; failure_ctx.timestamp_usecs = log_time->tv_usec; @@ -266,7 +266,7 @@ log_it(struct log_connection *log, const char *line, } i_assert(failure.log_type < LOG_TYPE_COUNT); - memset(&failure_ctx, 0, sizeof(failure_ctx)); + i_zero(&failure_ctx); failure_ctx.type = failure.log_type; failure_ctx.timestamp = tm; failure_ctx.timestamp_usecs = log_time->tv_usec; diff --git a/src/login-common/client-common-auth.c b/src/login-common/client-common-auth.c index 5b0ea9f895..663a64ff8e 100644 --- a/src/login-common/client-common-auth.c +++ b/src/login-common/client-common-auth.c @@ -99,7 +99,7 @@ static void client_auth_parse_args(struct client *client, bool success, ARRAY_TYPE(const_string) alt_usernames; t_array_init(&alt_usernames, 4); - memset(reply_r, 0, sizeof(*reply_r)); + i_zero(reply_r); for (; *args != NULL; args++) { p = strchr(*args, '='); @@ -386,7 +386,7 @@ static int proxy_start(struct client *client, return -1; } - memset(&proxy_set, 0, sizeof(proxy_set)); + i_zero(&proxy_set); proxy_set.host = reply->host; if (reply->hostip != NULL && net_addr2ip(reply->hostip, &proxy_set.ip) < 0) @@ -608,7 +608,7 @@ sasl_callback(struct client *client, enum sasl_server_reply sasl_reply, sasl_reply == SASL_SERVER_REPLY_AUTH_ABORTED || sasl_reply == SASL_SERVER_REPLY_MASTER_FAILED); - memset(&reply, 0, sizeof(reply)); + i_zero(&reply); switch (sasl_reply) { case SASL_SERVER_REPLY_SUCCESS: if (client->to_auth_waiting != NULL) diff --git a/src/login-common/login-proxy-state.c b/src/login-common/login-proxy-state.c index ea38ff618b..df9775bde8 100644 --- a/src/login-common/login-proxy-state.c +++ b/src/login-common/login-proxy-state.c @@ -91,7 +91,7 @@ login_proxy_state_get(struct login_proxy_state *state, { struct login_proxy_record *rec, key; - memset(&key, 0, sizeof(key)); + i_zero(&key); key.ip = *ip; key.port = port; diff --git a/src/login-common/login-settings.c b/src/login-common/login-settings.c index 73a8a7270e..9702142173 100644 --- a/src/login-common/login-settings.c +++ b/src/login-common/login-settings.c @@ -168,7 +168,7 @@ login_settings_read(pool_t pool, void **sets; unsigned int i, count; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = login_set_roots; input.module = login_binary->process_name; input.service = login_binary->protocol; diff --git a/src/login-common/main.c b/src/login-common/main.c index d0e2e4c3eb..a970e67963 100644 --- a/src/login-common/main.c +++ b/src/login-common/main.c @@ -314,7 +314,7 @@ static void login_load_modules(void) if (global_login_settings->login_plugins[0] == '\0') return; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.binary_name = login_binary->process_name; mod_set.setting_name = "login_plugins"; diff --git a/src/login-common/sasl-server.c b/src/login-common/sasl-server.c index 5f1ffcd879..f559245e8e 100644 --- a/src/login-common/sasl-server.c +++ b/src/login-common/sasl-server.c @@ -128,7 +128,7 @@ static void master_send_request(struct anvil_request *anvil_request) buffer_t *buf; const char *session_id = client_get_session_id(client); - memset(&req, 0, sizeof(req)); + i_zero(&req); req.auth_pid = anvil_request->auth_pid; req.auth_id = anvil_request->auth_id; req.local_ip = client->local_ip; @@ -153,7 +153,7 @@ static void master_send_request(struct anvil_request *anvil_request) client->auth_finished = ioloop_time; client->master_auth_id = req.auth_id; - memset(¶ms, 0, sizeof(params)); + i_zero(¶ms); params.client_fd = client->fd; params.socket_path = client->postlogin_socket_path; params.request = req; @@ -354,7 +354,7 @@ void sasl_server_auth_begin(struct client *client, return; } - memset(&info, 0, sizeof(info)); + i_zero(&info); info.mech = mech->name; info.service = service; info.session_id = client_get_session_id(client); diff --git a/src/login-common/ssl-proxy-openssl.c b/src/login-common/ssl-proxy-openssl.c index 6e529d7c24..c3e32ab5c0 100644 --- a/src/login-common/ssl-proxy-openssl.c +++ b/src/login-common/ssl-proxy-openssl.c @@ -605,7 +605,7 @@ ssl_server_context_get(const struct login_settings *login_set, { struct ssl_server_context *ctx, lookup_ctx; - memset(&lookup_ctx, 0, sizeof(lookup_ctx)); + i_zero(&lookup_ctx); lookup_ctx.cert = set->ssl_cert; lookup_ctx.key = set->ssl_key; lookup_ctx.ca = set->ssl_ca; @@ -1387,7 +1387,7 @@ void ssl_proxy_init(void) initialized though. */ (void)RAND_bytes(&buf, 1); - memset(&ssl_params, 0, sizeof(ssl_params)); + i_zero(&ssl_params); ssl_params.path = SSL_PARAMETERS_PATH; ssl_proxy_count = 0; diff --git a/src/master/main.c b/src/master/main.c index 9677dd3a60..1b7226fd2d 100644 --- a/src/master/main.c +++ b/src/master/main.c @@ -337,7 +337,7 @@ sig_settings_reload(const siginfo_t *si ATTR_UNUSED, } } - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = MASTER_SERVICE_NAME; input.config_path = services_get_config_socket_path(services); @@ -410,7 +410,7 @@ static struct master_settings *master_settings_read(void) struct master_service_settings_output output; const char *error; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "master"; input.parse_full_config = TRUE; diff --git a/src/master/service-listen.c b/src/master/service-listen.c index c1c63f1cba..feb2bf4c6c 100644 --- a/src/master/service-listen.c +++ b/src/master/service-listen.c @@ -260,7 +260,7 @@ static int get_socket_info(int fd, unsigned int *family, in_port_t *port) if (port) *port = -1; if (family) *family = -1; - memset(&sockaddr, 0, sizeof(sockaddr)); + i_zero(&sockaddr); l = sizeof(sockaddr); if (getsockname(fd, &sockaddr.sa, &l) < 0) diff --git a/src/master/service-log.c b/src/master/service-log.c index 324446f73e..57e5634194 100644 --- a/src/master/service-log.c +++ b/src/master/service-log.c @@ -30,7 +30,7 @@ static int service_log_fds_init(const char *log_prefix, int log_fd[2], fd_close_on_exec(log_fd[0], TRUE); fd_close_on_exec(log_fd[1], TRUE); - memset(&handshake, 0, sizeof(handshake)); + i_zero(&handshake); handshake.log_magic = MASTER_LOG_MAGIC; handshake.prefix_len = strlen(log_prefix); diff --git a/src/master/service-monitor.c b/src/master/service-monitor.c index 408edf4d29..5ccd232ef5 100644 --- a/src/master/service-monitor.c +++ b/src/master/service-monitor.c @@ -46,7 +46,7 @@ static void service_process_kill_idle(struct service_process *process) dec2str(process->pid)); /* assume this process is busy */ - memset(&status, 0, sizeof(status)); + i_zero(&status); service_status_more(process, &status); process->available_count = 0; } else { diff --git a/src/plugins/acl/acl-api.c b/src/plugins/acl/acl-api.c index 33410a51e7..6d6c705bc5 100644 --- a/src/plugins/acl/acl-api.c +++ b/src/plugins/acl/acl-api.c @@ -407,7 +407,7 @@ int acl_rights_parse_line(const char *line, pool_t pool, id_str = t_strdup_until(id_str, line++); } - memset(rights_r, 0, sizeof(*rights_r)); + i_zero(rights_r); right_names = acl_right_names_parse(pool, line, &error); if (*id_str != '-') @@ -432,7 +432,7 @@ int acl_rights_parse_line(const char *line, pool_t pool, void acl_rights_dup(const struct acl_rights *src, pool_t pool, struct acl_rights *dest_r) { - memset(dest_r, 0, sizeof(*dest_r)); + i_zero(dest_r); dest_r->id_type = src->id_type; dest_r->identifier = p_strdup(pool, src->identifier); dest_r->rights = src->rights == NULL ? NULL : @@ -727,7 +727,7 @@ static void apply_owner_default_rights(struct acl_object *aclobj) struct acl_rights_update ru; const char *null = NULL; - memset(&ru, 0, sizeof(ru)); + i_zero(&ru); ru.modify_mode = ACL_MODIFY_MODE_REPLACE; ru.neg_modify_mode = ACL_MODIFY_MODE_REPLACE; ru.rights.id_type = ACL_ID_OWNER; @@ -758,7 +758,7 @@ void acl_object_rebuild_cache(struct acl_object *aclobj) ACLs are merged. In all other situations the ACLs are replaced (because there aren't duplicate rights entries and a user can't match multiple usernames). */ - memset(&ru, 0, sizeof(ru)); + i_zero(&ru); rights = array_get(&aclobj->rights, &count); if (!acl_backend_user_is_owner(aclobj->backend)) i = 0; @@ -816,7 +816,7 @@ void acl_object_remove_all_access(struct acl_object *aclobj) static const char *null = NULL; struct acl_rights rights; - memset(&rights, 0, sizeof(rights)); + i_zero(&rights); rights.id_type = ACL_ID_ANYONE; rights.rights = &null; array_append(&aclobj->rights, &rights, 1); diff --git a/src/plugins/acl/acl-attributes.c b/src/plugins/acl/acl-attributes.c index 53792924a3..3a0244169b 100644 --- a/src/plugins/acl/acl-attributes.c +++ b/src/plugins/acl/acl-attributes.c @@ -39,7 +39,7 @@ acl_attribute_update_acl(struct mailbox_transaction_context *t, const char *key, &value_str) < 0) return -1; - memset(&update, 0, sizeof(update)); + i_zero(&update); update.modify_mode = ACL_MODIFY_MODE_REPLACE; update.neg_modify_mode = ACL_MODIFY_MODE_REPLACE; update.last_change = value->last_change; @@ -62,7 +62,7 @@ static int acl_attribute_get_acl(struct mailbox *box, const char *key, const char *id; int ret; - memset(value_r, 0, sizeof(*value_r)); + i_zero(value_r); if (!box->storage->user->dsyncing) { mail_storage_set_error(box->storage, MAIL_ERROR_PERM, @@ -74,7 +74,7 @@ static int acl_attribute_get_acl(struct mailbox *box, const char *key, can use this information) */ (void)acl_object_last_changed(aclobj, &value_r->last_change); - memset(&wanted_rights, 0, sizeof(wanted_rights)); + i_zero(&wanted_rights); id = key + strlen(MAILBOX_ATTRIBUTE_PREFIX_ACL); if (acl_identifier_parse(id, &wanted_rights) < 0) { mail_storage_set_error(box->storage, MAIL_ERROR_PARAMS, diff --git a/src/plugins/acl/acl-backend-vfile-update.c b/src/plugins/acl/acl-backend-vfile-update.c index 0c2ebadee0..6a355d8edb 100644 --- a/src/plugins/acl/acl-backend-vfile-update.c +++ b/src/plugins/acl/acl-backend-vfile-update.c @@ -90,7 +90,7 @@ vfile_object_add_right(struct acl_object *aclobj, unsigned int idx, return FALSE; } - memset(&right, 0, sizeof(right)); + i_zero(&right); right.id_type = update->rights.id_type; right.identifier = p_strdup(aclobj->rights_pool, update->rights.identifier); diff --git a/src/plugins/acl/acl-backend-vfile.c b/src/plugins/acl/acl-backend-vfile.c index db8048a5df..6dbb0d63ba 100644 --- a/src/plugins/acl/acl-backend-vfile.c +++ b/src/plugins/acl/acl-backend-vfile.c @@ -229,7 +229,7 @@ acl_backend_vfile_has_acl(struct acl_backend *_backend, const char *name) if (old_validity != NULL) new_validity = *old_validity; else - memset(&new_validity, 0, sizeof(new_validity)); + i_zero(&new_validity); /* See if the mailbox exists. If we wanted recursive lookups we could skip this, but at least for now we assume that if an existing @@ -558,7 +558,7 @@ static int acl_backend_vfile_object_refresh_cache(struct acl_object *_aclobj) p_clear(_aclobj->rights_pool); } - memset(&validity, 0, sizeof(validity)); + i_zero(&validity); if (_aclobj->backend->global_file != NULL) acl_object_add_global_acls(_aclobj); else { diff --git a/src/plugins/acl/acl-global-file.c b/src/plugins/acl/acl-global-file.c index ea8004a23a..1d1725d81a 100644 --- a/src/plugins/acl/acl-global-file.c +++ b/src/plugins/acl/acl-global-file.c @@ -122,7 +122,7 @@ static int acl_global_file_read(struct acl_global_file *file) array_clear(&file->rights); p_clear(file->rights_pool); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.file = file; i_array_init(&ctx.parse_rights, 32); diff --git a/src/plugins/acl/acl-mailbox-list.c b/src/plugins/acl/acl-mailbox-list.c index 0aec8add64..4969925ff6 100644 --- a/src/plugins/acl/acl-mailbox-list.c +++ b/src/plugins/acl/acl-mailbox-list.c @@ -110,7 +110,7 @@ acl_mailbox_try_list_fast(struct acl_mailbox_list_iterate_context *ctx) return; /* no LOOKUP right by default, we can optimize this */ - memset(&update_ctx, 0, sizeof(update_ctx)); + i_zero(&update_ctx); update_ctx.iter_ctx = &ctx->ctx; update_ctx.glob = imap_match_init(pool_datastack_create(), "*", diff --git a/src/plugins/acl/acl-mailbox.c b/src/plugins/acl/acl-mailbox.c index da6c05b0f6..14787e0a53 100644 --- a/src/plugins/acl/acl-mailbox.c +++ b/src/plugins/acl/acl-mailbox.c @@ -95,7 +95,7 @@ static void acl_mailbox_copy_acls_from_parent(struct mailbox *box) struct acl_object_list_iter *iter; struct acl_rights_update update; - memset(&update, 0, sizeof(update)); + i_zero(&update); update.modify_mode = ACL_MODIFY_MODE_REPLACE; update.neg_modify_mode = ACL_MODIFY_MODE_REPLACE; diff --git a/src/plugins/acl/doveadm-acl.c b/src/plugins/acl/doveadm-acl.c index 55f2136efc..9e1df517e6 100644 --- a/src/plugins/acl/doveadm-acl.c +++ b/src/plugins/acl/doveadm-acl.c @@ -230,7 +230,7 @@ cmd_acl_set_run(struct doveadm_mail_cmd_context *_ctx, struct mail_user *user) if (cmd_acl_mailbox_open(_ctx, user, mailbox, &box) < 0) return -1; - memset(&update, 0, sizeof(update)); + i_zero(&update); update.modify_mode = ctx->modify_mode; update.neg_modify_mode = ctx->modify_mode; if (acl_rights_update_import(&update, id, rights, &error) < 0) @@ -290,7 +290,7 @@ cmd_acl_delete_run(struct doveadm_mail_cmd_context *ctx, struct mail_user *user) if (cmd_acl_mailbox_open(ctx, user, mailbox, &box) < 0) return -1; - memset(&update, 0, sizeof(update)); + i_zero(&update); if (acl_rights_update_import(&update, id, NULL, &error) < 0) i_fatal_status(EX_USAGE, "%s", error); if ((ret = cmd_acl_mailbox_update(box, &update)) < 0) { diff --git a/src/plugins/dict-ldap/dict-ldap-settings.c b/src/plugins/dict-ldap/dict-ldap-settings.c index 200ca8c3e6..186b30fb53 100644 --- a/src/plugins/dict-ldap/dict-ldap-settings.c +++ b/src/plugins/dict-ldap/dict-ldap-settings.c @@ -167,7 +167,7 @@ static const char *dict_ldap_map_finish(struct setting_parser_ctx *ctx) return "Missing attributes for pattern variables"; } array_append(&ctx->set->maps, &ctx->cur_map, 1); - memset(&ctx->cur_map, 0, sizeof(ctx->cur_map)); + i_zero(&ctx->cur_map); return NULL; } @@ -284,7 +284,7 @@ dict_ldap_settings_read(pool_t pool, const char *path, const char **error_r) { struct setting_parser_ctx ctx; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.pool = pool; ctx.set = p_new(pool, struct dict_ldap_settings, 1); t_array_init(&ctx.cur_attributes, 16); diff --git a/src/plugins/dict-ldap/dict-ldap.c b/src/plugins/dict-ldap/dict-ldap.c index 896757a6f5..fdb4e51bee 100644 --- a/src/plugins/dict-ldap/dict-ldap.c +++ b/src/plugins/dict-ldap/dict-ldap.c @@ -151,7 +151,7 @@ static int dict_ldap_connect(struct ldap_dict *dict, const char **error_r) { struct ldap_client_settings set; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.uri = dict->set->uri; set.bind_dn = dict->set->bind_dn; set.password = dict->set->password; @@ -407,7 +407,7 @@ void ldap_dict_lookup_async(struct dict *dict, const char *key, op->map = map; attributes[0] = map->value_attribute; /* build lookup */ - memset(&input, 0, sizeof(input)); + i_zero(&input); input.base_dn = map->base_dn; input.scope = map->scope_val; ldap_dict_build_query(ctx, map, &values, strncmp(key, DICT_PATH_PRIVATE, strlen(DICT_PATH_PRIVATE))==0, query); diff --git a/src/plugins/expire/doveadm-expire.c b/src/plugins/expire/doveadm-expire.c index d00962406c..a53064d108 100644 --- a/src/plugins/expire/doveadm-expire.c +++ b/src/plugins/expire/doveadm-expire.c @@ -230,7 +230,7 @@ doveadm_expire_analyze_and_query(struct doveadm_mail_cmd_context *ctx, struct expire_query query; bool have_or = FALSE; - memset(&query, 0, sizeof(query)); + i_zero(&query); query.before_time = (time_t)-1; for (arg = args; arg != NULL; arg = arg->next) { diff --git a/src/plugins/expire/expire-plugin.c b/src/plugins/expire/expire-plugin.c index 6af2b9687b..d319228df3 100644 --- a/src/plugins/expire/expire-plugin.c +++ b/src/plugins/expire/expire-plugin.c @@ -162,7 +162,7 @@ expire_update(struct mailbox *box, const char *key, time_t timestamp) if (dict_transaction_commit(&dctx) < 0) i_error("expire: dict commit failed"); else if (euser->expire_cache) { - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); hdr.timestamp = timestamp; trans = mail_index_transaction_begin(box->view, diff --git a/src/plugins/fts-lucene/doveadm-fts-lucene.c b/src/plugins/fts-lucene/doveadm-fts-lucene.c index 7bb4855e31..86bca6103b 100644 --- a/src/plugins/fts-lucene/doveadm-fts-lucene.c +++ b/src/plugins/fts-lucene/doveadm-fts-lucene.c @@ -21,7 +21,7 @@ static void cmd_dump_fts_lucene(int argc ATTR_UNUSED, char *argv[]) const struct lucene_index_record *rec; bool first = TRUE; - memset(&prev_guid, 0, sizeof(prev_guid)); + i_zero(&prev_guid); index = lucene_index_init(argv[1], NULL, NULL); iter = lucene_index_iter_init(index); while ((rec = lucene_index_iter_next(iter)) != NULL) { diff --git a/src/plugins/fts-solr/fts-backend-solr.c b/src/plugins/fts-solr/fts-backend-solr.c index 82c4b4c604..cfed00932f 100644 --- a/src/plugins/fts-solr/fts-backend-solr.c +++ b/src/plugins/fts-solr/fts-backend-solr.c @@ -324,7 +324,7 @@ fts_solr_field_get(struct solr_fts_backend_update_context *ctx, const char *key) return field->value; } - memset(&new_field, 0, sizeof(new_field)); + i_zero(&new_field); new_field.key = str_lcase(i_strdup(key)); new_field.value = str_new(default_pool, 128); array_append(&ctx->fields, &new_field, 1); diff --git a/src/plugins/fts-solr/solr-connection.c b/src/plugins/fts-solr/solr-connection.c index 1eca106876..f68a0db813 100644 --- a/src/plugins/fts-solr/solr-connection.c +++ b/src/plugins/fts-solr/solr-connection.c @@ -122,7 +122,7 @@ int solr_connection_init(const char *url, bool debug, conn->debug = debug; if (solr_http_client == NULL) { - memset(&http_set, 0, sizeof(http_set)); + i_zero(&http_set); http_set.max_idle_time_msecs = 5*1000; http_set.max_parallel_connections = 1; http_set.max_pipelined_requests = 1; @@ -425,7 +425,7 @@ int solr_connection_select(struct solr_connection *conn, const char *query, const char *url; int parse_ret; - memset(&solr_lookup_context, 0, sizeof(solr_lookup_context)); + i_zero(&solr_lookup_context); solr_lookup_context.result_pool = pool; hash_table_create(&solr_lookup_context.mailboxes, default_pool, 0, str_hash, strcmp); diff --git a/src/plugins/fts-squat/squat-trie.c b/src/plugins/fts-squat/squat-trie.c index 01f3f90b71..4888d21849 100644 --- a/src/plugins/fts-squat/squat-trie.c +++ b/src/plugins/fts-squat/squat-trie.c @@ -174,8 +174,8 @@ static void squat_trie_close(struct squat_trie *trie) { trie->corrupted = FALSE; node_free(trie, &trie->root); - memset(&trie->root, 0, sizeof(trie->root)); - memset(&trie->hdr, 0, sizeof(trie->hdr)); + i_zero(&trie->root); + i_zero(&trie->hdr); squat_trie_close_fd(trie); if (trie->file_cache != NULL) @@ -206,7 +206,7 @@ void squat_trie_set_full_len(struct squat_trie *trie, unsigned int len) static void squat_trie_header_init(struct squat_trie *trie) { - memset(&trie->hdr, 0, sizeof(trie->hdr)); + i_zero(&trie->hdr); trie->hdr.version = SQUAT_TRIE_VERSION; trie->hdr.indexid = time(NULL); trie->hdr.uidvalidity = trie->uidvalidity; @@ -1149,7 +1149,7 @@ squat_trie_iterate_next(struct squat_trie_iterate_context *ctx, if (shift_count != 0) i_array_init(&ctx->cur.shifts, shift_count); else - memset(&ctx->cur.shifts, 0, sizeof(ctx->cur.shifts)); + i_zero(&ctx->cur.shifts); return squat_trie_iterate_first(ctx); } @@ -1509,7 +1509,7 @@ static int squat_trie_map(struct squat_trie *trie, bool building) if (changed || trie->hdr.root_offset == 0) { node_free(trie, &trie->root); - memset(&trie->root, 0, sizeof(trie->root)); + i_zero(&trie->root); trie->root.want_sequential = TRUE; trie->root.unused_uids = trie->hdr.root_unused_uids; trie->root.next_uid = trie->hdr.root_next_uid; @@ -1977,7 +1977,7 @@ squat_trie_lookup_real(struct squat_trie *trie, const char *str, array_clear(definite_uids); array_clear(maybe_uids); - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.trie = trie; ctx.type = type; ctx.definite_uids = definite_uids; diff --git a/src/plugins/fts-squat/squat-uidlist.c b/src/plugins/fts-squat/squat-uidlist.c index 8300fa5633..d6c1bec37c 100644 --- a/src/plugins/fts-squat/squat-uidlist.c +++ b/src/plugins/fts-squat/squat-uidlist.c @@ -536,7 +536,7 @@ static int squat_uidlist_open(struct squat_uidlist *uidlist) uidlist->fd = open(uidlist->path, O_RDWR); if (uidlist->fd == -1) { if (errno == ENOENT) { - memset(&uidlist->hdr, 0, sizeof(uidlist->hdr)); + i_zero(&uidlist->hdr); return 0; } i_error("open(%s) failed: %m", uidlist->path); @@ -678,7 +678,7 @@ static int squat_uidlist_open_or_create(struct squat_uidlist *uidlist) } if (uidlist->locked_file_size == 0) { /* write using 0 until we're finished */ - memset(&uidlist->hdr, 0, sizeof(uidlist->hdr)); + i_zero(&uidlist->hdr); if (write_full(uidlist->fd, &uidlist->hdr, sizeof(uidlist->hdr)) < 0) { i_error("write(%s) failed: %m", uidlist->path); @@ -717,7 +717,7 @@ int squat_uidlist_build_init(struct squat_uidlist *uidlist, if (ctx->output->offset == 0) { struct squat_uidlist_file_header hdr; - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); o_stream_nsend(ctx->output, &hdr, sizeof(hdr)); } o_stream_cork(ctx->output); @@ -934,7 +934,7 @@ int squat_uidlist_rebuild_init(struct squat_uidlist_build_context *build_ctx, ctx->next_uid_list_idx = 0x100; o_stream_cork(ctx->output); - memset(&hdr, 0, sizeof(hdr)); + i_zero(&hdr); o_stream_nsend(ctx->output, &hdr, sizeof(hdr)); ctx->cur_block_start_offset = ctx->output->offset; diff --git a/src/plugins/fts/doveadm-fts.c b/src/plugins/fts/doveadm-fts.c index cab0a1cc1b..d794f3bac0 100644 --- a/src/plugins/fts/doveadm-fts.c +++ b/src/plugins/fts/doveadm-fts.c @@ -41,7 +41,7 @@ cmd_search_box(struct doveadm_mail_cmd_context *ctx, return -1; } - memset(&result, 0, sizeof(result)); + i_zero(&result); i_array_init(&result.definite_uids, 16); i_array_init(&result.maybe_uids, 16); i_array_init(&result.scores, 16); diff --git a/src/plugins/fts/fts-api.c b/src/plugins/fts/fts-api.c index f690307966..adb4b065c6 100644 --- a/src/plugins/fts/fts-api.c +++ b/src/plugins/fts/fts-api.c @@ -422,7 +422,7 @@ bool fts_index_get_header(struct mailbox *box, struct fts_index_header *hdr_r) mail_index_get_header_ext(view, fts_index_get_ext_id(box), &data, &data_size); if (data_size < sizeof(*hdr_r)) { - memset(hdr_r, 0, sizeof(*hdr_r)); + i_zero(hdr_r); ret = FALSE; } else { memcpy(hdr_r, data, data_size); diff --git a/src/plugins/fts/fts-build-mail.c b/src/plugins/fts/fts-build-mail.c index ad989c97a9..f4442820a1 100644 --- a/src/plugins/fts/fts-build-mail.c +++ b/src/plugins/fts/fts-build-mail.c @@ -160,7 +160,7 @@ static int fts_build_mail_header(struct fts_mail_build_context *ctx, /* hdr->full_value is always set because we get the block from message_decoder */ - memset(&key, 0, sizeof(key)); + i_zero(&key); key.uid = ctx->mail->uid; key.type = block->part->physical_pos == 0 ? FTS_BACKEND_BUILD_KEY_HDR : FTS_BACKEND_BUILD_KEY_MIME_HDR; @@ -222,7 +222,7 @@ fts_build_body_begin(struct fts_mail_build_context *ctx, i_assert(ctx->body_parser == NULL); *binary_body_r = FALSE; - memset(&key, 0, sizeof(key)); + i_zero(&key); key.uid = ctx->mail->uid; key.part = part; @@ -440,7 +440,7 @@ static int fts_body_parser_finish(struct fts_mail_build_context *ctx) int ret = 0; do { - memset(&block, 0, sizeof(block)); + i_zero(&block); fts_parser_more(ctx->body_parser, &block); if (fts_build_body_block(ctx, &block, FALSE) < 0) { ret = -1; @@ -477,7 +477,7 @@ fts_build_mail_real(struct fts_backend_update_context *update_ctx, return -1; } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.update_ctx = update_ctx; ctx.mail = mail; if ((update_ctx->backend->flags & FTS_BACKEND_FLAG_TOKENIZED_INPUT) != 0) diff --git a/src/plugins/fts/fts-parser-tika.c b/src/plugins/fts/fts-parser-tika.c index 474f11be29..7832f4c57e 100644 --- a/src/plugins/fts/fts-parser-tika.c +++ b/src/plugins/fts/fts-parser-tika.c @@ -62,7 +62,7 @@ tika_get_http_client_url(struct mail_user *user, struct http_url **http_url_r) } if (tika_http_client == NULL) { - memset(&http_set, 0, sizeof(http_set)); + i_zero(&http_set); http_set.max_idle_time_msecs = 100; http_set.max_parallel_connections = 1; http_set.max_pipelined_requests = 1; diff --git a/src/plugins/fts/fts-search.c b/src/plugins/fts/fts-search.c index acdad40dab..de44c84f2d 100644 --- a/src/plugins/fts/fts-search.c +++ b/src/plugins/fts/fts-search.c @@ -41,7 +41,7 @@ static int fts_search_lookup_level_single(struct fts_search_context *fctx, struct fts_search_level *level; struct fts_result result; - memset(&result, 0, sizeof(result)); + i_zero(&result); p_array_init(&result.definite_uids, fctx->result_pool, 32); p_array_init(&result.maybe_uids, fctx->result_pool, 32); p_array_init(&result.scores, fctx->result_pool, 32); @@ -166,7 +166,7 @@ static int fts_search_lookup_level_multi(struct fts_search_context *fctx, &mailboxes_arr, TRUE); array_sort(&mailboxes_arr, mailbox_cmp_fts_backend); - memset(&result, 0, sizeof(result)); + i_zero(&result); result.pool = fctx->result_pool; level = array_append_space(&fctx->levels); diff --git a/src/plugins/fts/xml2text.c b/src/plugins/fts/xml2text.c index bdc8f0da9e..4827919493 100644 --- a/src/plugins/fts/xml2text.c +++ b/src/plugins/fts/xml2text.c @@ -18,7 +18,7 @@ int main(void) parser = fts_parser_html.try_init(NULL, "text/html", NULL); i_assert(parser != NULL); - memset(&block, 0, sizeof(block)); + i_zero(&block); while ((ret = read(STDIN_FILENO, buf, sizeof(buf))) > 0) { block.data = buf; block.size = ret; diff --git a/src/plugins/imap-acl/imap-acl-plugin.c b/src/plugins/imap-acl/imap-acl-plugin.c index 9cfaf6e933..85179801b0 100644 --- a/src/plugins/imap-acl/imap-acl-plugin.c +++ b/src/plugins/imap-acl/imap-acl-plugin.c @@ -254,7 +254,7 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend, if (!seen_positive_owner && username != NULL && add_default) { /* no positive owner rights returned, write default ACLs */ - memset(&rights, 0, sizeof(rights)); + i_zero(&rights); if (!convert_owner) { rights.id_type = ACL_ID_OWNER; } else { @@ -572,7 +572,7 @@ static bool cmd_setacl(struct client_command_context *cmd) return TRUE; } - memset(&update, 0, sizeof(update)); + i_zero(&update); if (*identifier == '-') { negative = TRUE; identifier++; @@ -655,7 +655,7 @@ static bool cmd_deleteacl(struct client_command_context *cmd) return TRUE; } - memset(&update, 0, sizeof(update)); + i_zero(&update); if (*identifier != '-') update.modify_mode = ACL_MODIFY_MODE_CLEAR; else { diff --git a/src/plugins/last-login/last-login-plugin.c b/src/plugins/last-login/last-login-plugin.c index 82bb6e99d1..6daa805a64 100644 --- a/src/plugins/last-login/last-login-plugin.c +++ b/src/plugins/last-login/last-login-plugin.c @@ -93,7 +93,7 @@ static void last_login_mail_user_created(struct mail_user *user) if (dict_value == NULL || dict_value[0] == '\0') return; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.username = user->username; set.base_dir = user->set->base_dir; if (mail_user_get_home(user, &set.home_dir) <= 0) diff --git a/src/plugins/mail-crypt/doveadm-mail-crypt.c b/src/plugins/mail-crypt/doveadm-mail-crypt.c index e861b74dc5..d35e9f271e 100644 --- a/src/plugins/mail-crypt/doveadm-mail-crypt.c +++ b/src/plugins/mail-crypt/doveadm-mail-crypt.c @@ -72,7 +72,7 @@ mcp_user_create(struct mail_user *user, const char *dest_username, if ((cur_ioloop_ctx = io_loop_get_current_context(current_ioloop)) != NULL) io_loop_context_deactivate(cur_ioloop_ctx); - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = old_input->module; input.service = old_input->service; input.username = dest_username; @@ -453,7 +453,7 @@ static void mcp_key_list(struct mcp_cmd_context *ctx, struct mailbox *box = mailbox_alloc(ns->list, "INBOX", MAILBOX_FLAG_READONLY); struct mail_attribute_value value; - memset(&value, 0, sizeof(value)); + i_zero(&value); if (mailbox_open(box) < 0) { i_error("mailbox_open(%s) failed: %s", mailbox_get_vname(box), @@ -529,7 +529,7 @@ static void mcp_key_list(struct mcp_cmd_context *ctx, mailbox_transaction_begin(box, 0); struct mail_attribute_value value; - memset(&value, 0, sizeof(value)); + i_zero(&value); array_clear(&ids); /* get active ID */ @@ -587,7 +587,7 @@ static int cmd_mcp_key_list_run(struct doveadm_mail_cmd_context *_ctx, struct mcp_cmd_context *ctx = (struct mcp_cmd_context *)_ctx; struct mcp_key_iter_ctx iter_ctx; - memset(&iter_ctx, 0, sizeof(iter_ctx)); + i_zero(&iter_ctx); iter_ctx.pool = _ctx->pool; p_array_init(&iter_ctx.keys, _ctx->pool, 8); @@ -806,7 +806,7 @@ static int cmd_mcp_key_password_run(struct doveadm_mail_cmd_context *_ctx, dcrypt_key_unref_private(&key); if (ret == -1) break; - memset(&value, 0, sizeof(value)); + i_zero(&value); value.value = str_c(newkey); /* and store it */ diff --git a/src/plugins/mail-crypt/mail-crypt-acl-plugin.c b/src/plugins/mail-crypt/mail-crypt-acl-plugin.c index 1d884cb40c..6f62ed0d94 100644 --- a/src/plugins/mail-crypt/mail-crypt-acl-plugin.c +++ b/src/plugins/mail-crypt/mail-crypt-acl-plugin.c @@ -142,7 +142,7 @@ mail_crypt_acl_user_create(struct mail_user *user, const char *dest_username, if ((cur_ioloop_ctx = io_loop_get_current_context(current_ioloop)) != NULL) io_loop_context_deactivate(cur_ioloop_ctx); - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = old_input->module; input.service = old_input->service; input.username = dest_username; diff --git a/src/plugins/mail-crypt/mail-crypt-global-key.c b/src/plugins/mail-crypt/mail-crypt-global-key.c index 7ba47063e1..e5bdcaa0de 100644 --- a/src/plugins/mail-crypt/mail-crypt-global-key.c +++ b/src/plugins/mail-crypt/mail-crypt-global-key.c @@ -134,7 +134,7 @@ int mail_crypt_load_global_private_key(const char *set_key, const char *key_data void mail_crypt_global_keys_init(struct mail_crypt_global_keys *global_keys_r) { - memset(global_keys_r, 0, sizeof(*global_keys_r)); + i_zero(global_keys_r); i_array_init(&global_keys_r->private_keys, 4); } diff --git a/src/plugins/mail-crypt/mail-crypt-plugin.c b/src/plugins/mail-crypt/mail-crypt-plugin.c index d92e7d2e26..e22aa4ca4f 100644 --- a/src/plugins/mail-crypt/mail-crypt-plugin.c +++ b/src/plugins/mail-crypt/mail-crypt-plugin.c @@ -77,7 +77,7 @@ static void mail_crypt_cache_close(struct mail_crypt_user *muser) timeout_remove(&cache->to); if (cache->input != NULL) i_stream_unref(&cache->input); - memset(cache, 0, sizeof(*cache)); + i_zero(cache); } static struct istream * diff --git a/src/plugins/mail-crypt/mail-crypt-pluginenv.c b/src/plugins/mail-crypt/mail-crypt-pluginenv.c index 0ee256cb7d..2c6215cb51 100644 --- a/src/plugins/mail-crypt/mail-crypt-pluginenv.c +++ b/src/plugins/mail-crypt/mail-crypt-pluginenv.c @@ -20,7 +20,7 @@ fs_crypt_load_settings(void) struct master_service_settings_output output; const char *error; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.roots = set_roots; input.module = "fs-crypt"; input.service = "fs-crypt"; diff --git a/src/plugins/mail-crypt/test-mail-global-key.c b/src/plugins/mail-crypt/test-mail-global-key.c index d337b96ccd..95dfe6dbc6 100644 --- a/src/plugins/mail-crypt/test-mail-global-key.c +++ b/src/plugins/mail-crypt/test-mail-global-key.c @@ -55,7 +55,7 @@ static void test_try_load_keys(void) test_begin("try_load_keys"); struct mail_crypt_global_keys keys; - memset(&keys, 0, sizeof(keys)); + i_zero(&keys); mail_crypt_global_keys_init(&keys); const char *set_prefix = "mail_crypt_global"; @@ -103,7 +103,7 @@ static void test_empty_keyset(void) /* this should not crash */ struct mail_crypt_global_keys keys; - memset(&keys, 0, sizeof(keys)); + i_zero(&keys); test_assert(mail_crypt_global_key_find(&keys, "423423423423") == NULL); test_end(); diff --git a/src/plugins/mail-crypt/test-mail-key.c b/src/plugins/mail-crypt/test-mail-key.c index 0c9bb2125e..245c63a207 100644 --- a/src/plugins/mail-crypt/test-mail-key.c +++ b/src/plugins/mail-crypt/test-mail-key.c @@ -115,7 +115,7 @@ test_mail_attribute_set(struct mailbox_transaction_context *t, int ret; - memset(&attr_value, 0, sizeof(attr_value)); + i_zero(&attr_value); attr_value.value = value; if ((ret = mailbox_attribute_set(t, attr_type, diff --git a/src/plugins/pop3-migration/pop3-migration-plugin.c b/src/plugins/pop3-migration/pop3-migration-plugin.c index 8b773ba57d..4a0a34ef22 100644 --- a/src/plugins/pop3-migration/pop3-migration-plugin.c +++ b/src/plugins/pop3-migration/pop3-migration-plugin.c @@ -185,7 +185,7 @@ int pop3_migration_get_hdr_sha1(uint32_t mail_seq, struct istream *input, struct sha1_ctxt sha1_ctx; struct pop3_hdr_context hdr_ctx; - memset(&hdr_ctx, 0, sizeof(hdr_ctx)); + i_zero(&hdr_ctx); /* hide headers that might change or be different in IMAP vs. POP3 */ input = i_stream_create_header_filter(input, HEADER_FILTER_HIDE_BODY | HEADER_FILTER_EXCLUDE | HEADER_FILTER_NO_CR, @@ -770,7 +770,7 @@ pop3_migration_get_special(struct mail *_mail, enum mail_fetch_field field, if (pop3_migration_uidl_sync_if_needed(_mail->box) < 0) return -1; - memset(&map_key, 0, sizeof(map_key)); + i_zero(&map_key); map_key.uid = _mail->uid; map = array_bsearch(&mbox->imap_msg_map, &map_key, imap_msg_map_uid_cmp); diff --git a/src/plugins/push-notification/push-notification-driver-ox.c b/src/plugins/push-notification/push-notification-driver-ox.c index a5383c53d6..ba420ec9ee 100644 --- a/src/plugins/push-notification/push-notification-driver-ox.c +++ b/src/plugins/push-notification/push-notification-driver-ox.c @@ -63,7 +63,7 @@ push_notification_driver_ox_init_global(struct mail_user *user, if (ox_global->http_client == NULL) { /* this is going to use the first user's settings, but these are unlikely to change between users so it shouldn't matter much. */ - memset(&http_set, 0, sizeof(http_set)); + i_zero(&http_set); http_set.debug = user->mail_debug; http_set.max_attempts = config->http_max_retries+1; http_set.request_timeout_msecs = config->http_timeout_msecs; diff --git a/src/plugins/push-notification/push-notification-event-flagsclear.c b/src/plugins/push-notification/push-notification-event-flagsclear.c index c2371b23cb..ad7972e12e 100644 --- a/src/plugins/push-notification/push-notification-event-flagsclear.c +++ b/src/plugins/push-notification/push-notification-event-flagsclear.c @@ -18,7 +18,7 @@ static struct push_notification_event_flagsclear_config default_config; static void *push_notification_event_flagsclear_default_config(void) { - memset(&default_config, 0, sizeof(default_config)); + i_zero(&default_config); return &default_config; } diff --git a/src/plugins/push-notification/push-notification-event-flagsset.c b/src/plugins/push-notification/push-notification-event-flagsset.c index fd4b16202d..0d194827cd 100644 --- a/src/plugins/push-notification/push-notification-event-flagsset.c +++ b/src/plugins/push-notification/push-notification-event-flagsset.c @@ -18,7 +18,7 @@ static struct push_notification_event_flagsset_config default_config; static void *push_notification_event_flagsset_default_config(void) { - memset(&default_config, 0, sizeof(default_config)); + i_zero(&default_config); return &default_config; } diff --git a/src/plugins/push-notification/push-notification-event-messageappend.c b/src/plugins/push-notification/push-notification-event-messageappend.c index 5f9ce2f897..713bd8ceb7 100644 --- a/src/plugins/push-notification/push-notification-event-messageappend.c +++ b/src/plugins/push-notification/push-notification-event-messageappend.c @@ -20,7 +20,7 @@ static struct push_notification_event_messageappend_config default_config; static void *push_notification_event_messageappend_default_config(void) { - memset(&default_config, 0, sizeof(default_config)); + i_zero(&default_config); return &default_config; } diff --git a/src/plugins/push-notification/push-notification-event-messagenew.c b/src/plugins/push-notification/push-notification-event-messagenew.c index 421cd97ffa..90033cf599 100644 --- a/src/plugins/push-notification/push-notification-event-messagenew.c +++ b/src/plugins/push-notification/push-notification-event-messagenew.c @@ -23,7 +23,7 @@ static struct push_notification_event_messagenew_config default_config; static void *push_notification_event_messagenew_default_config(void) { - memset(&default_config, 0, sizeof(default_config)); + i_zero(&default_config); return &default_config; } diff --git a/src/plugins/quota-clone/quota-clone-plugin.c b/src/plugins/quota-clone/quota-clone-plugin.c index 026e72ef2e..e2642decd7 100644 --- a/src/plugins/quota-clone/quota-clone-plugin.c +++ b/src/plugins/quota-clone/quota-clone-plugin.c @@ -197,7 +197,7 @@ static void quota_clone_mail_user_created(struct mail_user *user) return; } - memset(&dict_set, 0, sizeof(dict_set)); + i_zero(&dict_set); dict_set.username = user->username; dict_set.base_dir = user->set->base_dir; (void)mail_user_get_home(user, &dict_set.home_dir); diff --git a/src/plugins/quota/doveadm-quota.c b/src/plugins/quota/doveadm-quota.c index 4a2a1fef8d..167d7c6245 100644 --- a/src/plugins/quota/doveadm-quota.c +++ b/src/plugins/quota/doveadm-quota.c @@ -99,7 +99,7 @@ cmd_quota_recalc_run(struct doveadm_mail_cmd_context *ctx ATTR_UNUSED, return -1; } - memset(&trans, 0, sizeof(trans)); + i_zero(&trans); trans.quota = quser->quota; trans.recalculate = QUOTA_RECALCULATE_FORCED; diff --git a/src/plugins/quota/quota-count.c b/src/plugins/quota/quota-count.c index 246c46dc58..df139bc9ea 100644 --- a/src/plugins/quota/quota-count.c +++ b/src/plugins/quota/quota-count.c @@ -264,7 +264,7 @@ static int quota_count_recalculate_box(struct mailbox *box) /* reset the vsize header first */ trans = mail_index_transaction_begin(box->view, MAIL_INDEX_TRANSACTION_FLAG_EXTERNAL); - memset(&vsize_hdr, 0, sizeof(vsize_hdr)); + i_zero(&vsize_hdr); mail_index_update_header_ext(trans, box->vsize_hdr_ext_id, 0, &vsize_hdr, sizeof(vsize_hdr)); if (mail_index_transaction_commit(&trans) < 0) diff --git a/src/plugins/quota/quota-dict.c b/src/plugins/quota/quota-dict.c index cbbc038630..e19486f714 100644 --- a/src/plugins/quota/quota-dict.c +++ b/src/plugins/quota/quota-dict.c @@ -84,7 +84,7 @@ static int dict_quota_init(struct quota_root *_root, const char *args, /* FIXME: we should use 64bit integer as datatype instead but before it can actually be used don't bother */ - memset(&set, 0, sizeof(set)); + i_zero(&set); set.username = username; set.base_dir = _root->quota->user->set->base_dir; if (mail_user_get_home(_root->quota->user, &set.home_dir) <= 0) diff --git a/src/plugins/quota/quota-status.c b/src/plugins/quota/quota-status.c index 53164b282f..816cf4b354 100644 --- a/src/plugins/quota/quota-status.c +++ b/src/plugins/quota/quota-status.c @@ -90,7 +90,7 @@ static void client_handle_request(struct quota_client *client) return; } - memset(&input, 0, sizeof(input)); + i_zero(&input); input.username = client->recipient; ret = mail_storage_service_lookup_next(storage_service, &input, @@ -193,7 +193,7 @@ static void main_init(void) MAIL_STORAGE_SERVICE_FLAG_ENABLE_CORE_DUMPS | MAIL_STORAGE_SERVICE_FLAG_NO_CHDIR); - memset(&input, 0, sizeof(input)); + i_zero(&input); input.service = "quota-status"; input.module = "mail"; input.username = ""; diff --git a/src/plugins/quota/quota-util.c b/src/plugins/quota/quota-util.c index c07ea63f64..3e50935079 100644 --- a/src/plugins/quota/quota-util.c +++ b/src/plugins/quota/quota-util.c @@ -326,7 +326,7 @@ int quota_root_add_warning_rule(struct quota_root_settings *root_set, q = rule_def; } - memset(&rule, 0, sizeof(rule)); + i_zero(&rule); ret = quota_rule_parse_limits(root_set, &rule, t_strdup_until(q, p), rule_def, FALSE, error_r); if (ret < 0) diff --git a/src/plugins/quota/quota.c b/src/plugins/quota/quota.c index 902277c819..a110fe239e 100644 --- a/src/plugins/quota/quota.c +++ b/src/plugins/quota/quota.c @@ -740,7 +740,7 @@ int quota_set_resource(struct quota_root *root, const char *name, if (root->limit_set_dict == NULL) { struct dict_settings set; - memset(&set, 0, sizeof(set)); + i_zero(&set); set.username = root->quota->user->username; set.base_dir = root->quota->user->set->base_dir; if (mail_user_get_home(root->quota->user, &set.home_dir) <= 0) diff --git a/src/plugins/quota/test-quota-util.c b/src/plugins/quota/test-quota-util.c index 0e044387fe..55e19d0f7c 100644 --- a/src/plugins/quota/test-quota-util.c +++ b/src/plugins/quota/test-quota-util.c @@ -56,7 +56,7 @@ static void test_quota_transaction_is_over(void) if (tests[i].new_size != 1) continue; - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.count_used = tests[i].transaction_diff; if (tests[i].initial_size > tests[i].limit) ctx.count_over = tests[i].initial_size - tests[i].limit; @@ -71,7 +71,7 @@ static void test_quota_transaction_is_over(void) test_begin("quota transcation is over (bytes)"); for (i = 0; i < N_ELEMENTS(tests); i++) { - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.count_ceil = 1; ctx.bytes_used = tests[i].transaction_diff; if (tests[i].initial_size > tests[i].limit) diff --git a/src/plugins/stats/mail-stats-fill.c b/src/plugins/stats/mail-stats-fill.c index 3c8ff360e4..a2b147740f 100644 --- a/src/plugins/stats/mail-stats-fill.c +++ b/src/plugins/stats/mail-stats-fill.c @@ -115,7 +115,7 @@ void mail_stats_fill(struct stats_user *suser, struct mail_stats *stats_r) static struct rusage prev_usage; struct rusage usage; - memset(stats_r, 0, sizeof(*stats_r)); + i_zero(stats_r); /* cputime */ if (getrusage(RUSAGE_SELF, &usage) < 0) { if (!getrusage_broken) { diff --git a/src/plugins/virtual/virtual-config.c b/src/plugins/virtual/virtual-config.c index 270c188112..9b8d11ad69 100644 --- a/src/plugins/virtual/virtual-config.c +++ b/src/plugins/virtual/virtual-config.c @@ -221,7 +221,7 @@ virtual_mailbox_get_list_patterns(struct virtual_parse_context *ctx) struct virtual_backend_box *const *bboxes; unsigned int i, count; - memset(&pattern, 0, sizeof(pattern)); + i_zero(&pattern); bboxes = array_get_modifiable(&mbox->backend_boxes, &count); p_array_init(&mbox->list_include_patterns, ctx->pool, count); p_array_init(&mbox->list_exclude_patterns, ctx->pool, count); @@ -491,7 +491,7 @@ int virtual_config_read(struct virtual_mailbox *mbox) return -1; } - memset(&ctx, 0, sizeof(ctx)); + i_zero(&ctx); ctx.sep = mail_namespaces_get_root_sep(storage->user->namespaces); ctx.mbox = mbox; ctx.pool = mbox->box.pool; diff --git a/src/plugins/virtual/virtual-mail.c b/src/plugins/virtual/virtual-mail.c index 6937d7f7c4..d505567d31 100644 --- a/src/plugins/virtual/virtual-mail.c +++ b/src/plugins/virtual/virtual-mail.c @@ -184,7 +184,7 @@ static void virtual_mail_set_seq(struct mail *mail, uint32_t seq, bool saving) mbox->virtual_ext_id, &data, NULL); memcpy(&vmail->cur_vrec, data, sizeof(vmail->cur_vrec)); - memset(&vmail->imail.data, 0, sizeof(vmail->imail.data)); + i_zero(&vmail->imail.data); p_clear(vmail->imail.mail.data_pool); vmail->imail.data.seq = seq; diff --git a/src/plugins/virtual/virtual-search.c b/src/plugins/virtual/virtual-search.c index 4ebc411b6e..41f7aa1b08 100644 --- a/src/plugins/virtual/virtual-search.c +++ b/src/plugins/virtual/virtual-search.c @@ -71,7 +71,7 @@ static void virtual_search_get_records(struct mail_search_context *ctx, const void *data; int result; - memset(&srec, 0, sizeof(srec)); + i_zero(&srec); while (index_storage_search_next_update_seq(ctx)) { result = mail_search_get_result(ctx); i_assert(result != 0); diff --git a/src/plugins/virtual/virtual-sync.c b/src/plugins/virtual/virtual-sync.c index 5b31212cf8..9399dd4dd5 100644 --- a/src/plugins/virtual/virtual-sync.c +++ b/src/plugins/virtual/virtual-sync.c @@ -277,8 +277,8 @@ static void virtual_sync_ext_header_rewrite(struct virtual_sync_context *ctx) mailbox_pos = sizeof(ext_hdr); name_pos = mailbox_pos + sizeof(mailbox) * count; - memset(&ext_hdr, 0, sizeof(ext_hdr)); - memset(&mailbox, 0, sizeof(mailbox)); + i_zero(&ext_hdr); + i_zero(&mailbox); ext_hdr.change_counter = ++ctx->mbox->prev_change_counter; ext_hdr.mailbox_count = count; @@ -488,7 +488,7 @@ static int virtual_sync_backend_box_init(struct virtual_backend_box *bbox) mailbox_search_result_save(search_ctx, result_flags); /* add the found UIDs to uidmap. virtual_uid gets assigned later. */ - memset(&uidmap, 0, sizeof(uidmap)); + i_zero(&uidmap); array_clear(&bbox->uids); while (mailbox_search_next(search_ctx, &mail)) { uidmap.real_uid = mail->uid; @@ -591,7 +591,7 @@ virtual_sync_mailbox_box_add(struct virtual_sync_context *ctx, src = dest + add_count; /* add/move the UIDs to their correct positions */ - memset(&rec, 0, sizeof(rec)); + i_zero(&rec); rec.rec.mailbox_id = bbox->mailbox_id; for (i = 0; i < uid_count; i++) { add_uid = added_uids[i].seq1; @@ -653,7 +653,7 @@ virtual_sync_backend_add_vmsgs_results(struct virtual_sync_context *ctx, mail_index_lookup_uid(ctx->sync_view, vseq, &vuid); - memset(&uidmap, 0, sizeof(uidmap)); + i_zero(&uidmap); uidmap.real_uid = real_uid; uidmap.virtual_uid = vuid; array_append(&bbox->uids, &uidmap, 1); @@ -1075,7 +1075,7 @@ static void virtual_sync_backend_ext_header(struct virtual_sync_context *ctx, return; } - memset(&mailbox, 0, sizeof(mailbox)); + i_zero(&mailbox); mailbox.uid_validity = bbox->sync_uid_validity; mailbox.highest_modseq = bbox->ondisk_highest_modseq; mailbox.next_uid = bbox->sync_next_uid; @@ -1244,7 +1244,7 @@ static void virtual_sync_backend_map_uids(struct virtual_sync_context *ctx) /* create real mailbox uid -> virtual uid mapping and expunge messages no longer matching the search rule */ - memset(&add_rec, 0, sizeof(add_rec)); + i_zero(&add_rec); bbox = NULL; for (i = 0; i < messages; i++) { vseq = vmails[i].vseq; @@ -1312,7 +1312,7 @@ static void virtual_sync_new_backend_boxes(struct virtual_sync_context *ctx) /* if there are any mailboxes we didn't yet sync, add new messages in them */ - memset(&add_rec, 0, sizeof(add_rec)); + i_zero(&add_rec); bboxes = array_get(&ctx->mbox->backend_boxes, &count); for (i = 0; i < count; i++) { if (bboxes[i]->sync_seen) @@ -1481,7 +1481,7 @@ virtual_sync_apply_existing_appends(struct virtual_sync_context *ctx) (uint32_t)-1, &seq, &seq2)) return 0; - memset(&uidmap, 0, sizeof(uidmap)); + i_zero(&uidmap); for (; seq <= seq2; seq++) { mail_index_lookup_ext(ctx->sync_view, seq, virtual_ext_id, &data, NULL); diff --git a/src/plugins/zlib/zlib-plugin.c b/src/plugins/zlib/zlib-plugin.c index 334541a6a5..afd503bfd8 100644 --- a/src/plugins/zlib/zlib-plugin.c +++ b/src/plugins/zlib/zlib-plugin.c @@ -70,7 +70,7 @@ static void zlib_mail_cache_close(struct zlib_user *zuser) timeout_remove(&cache->to); if (cache->input != NULL) i_stream_unref(&cache->input); - memset(cache, 0, sizeof(*cache)); + i_zero(cache); } static struct istream * diff --git a/src/pop3-login/pop3-proxy.c b/src/pop3-login/pop3-proxy.c index e1cceb087c..7186108980 100644 --- a/src/pop3-login/pop3-proxy.c +++ b/src/pop3-login/pop3-proxy.c @@ -55,7 +55,7 @@ static int proxy_send_login(struct pop3_client *client, struct ostream *output) } i_assert(client->common.proxy_sasl_client == NULL); - memset(&sasl_set, 0, sizeof(sasl_set)); + i_zero(&sasl_set); sasl_set.authid = client->common.proxy_master_user != NULL ? client->common.proxy_master_user : client->common.proxy_user; sasl_set.authzid = client->common.proxy_user; diff --git a/src/pop3/main.c b/src/pop3/main.c index af195825be..adca34a286 100644 --- a/src/pop3/main.c +++ b/src/pop3/main.c @@ -136,7 +136,7 @@ static void main_stdio_run(const char *username) buffer_t *input_buf; const char *value, *error, *input_base64; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "pop3"; input.username = username != NULL ? username : getenv("USER"); if (input.username == NULL && IS_STANDALONE()) @@ -165,7 +165,7 @@ login_client_connected(const struct master_login_client *client, const char *error; buffer_t input_buf; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = input.service = "pop3"; input.local_ip = client->auth_req.local_ip; input.remote_ip = client->auth_req.remote_ip; @@ -218,7 +218,7 @@ int main(int argc, char *argv[]) const char *username = NULL, *auth_socket_path = "auth-master"; int c; - memset(&login_set, 0, sizeof(login_set)); + i_zero(&login_set); login_set.postlogin_timeout_secs = MASTER_POSTLOGIN_TIMEOUT_DEFAULT; if (IS_STANDALONE() && getuid() == 0 && diff --git a/src/replication/replicator/replicator-queue-auth.c b/src/replication/replicator/replicator-queue-auth.c index d33fdbd04a..a9c4ddacee 100644 --- a/src/replication/replicator/replicator-queue-auth.c +++ b/src/replication/replicator/replicator-queue-auth.c @@ -19,7 +19,7 @@ void replicator_queue_add_auth_users(struct replicator_queue *queue, auth_conn = auth_master_init(auth_socket_path, AUTH_MASTER_FLAG_NO_IDLE_TIMEOUT); - memset(&user_info, 0, sizeof(user_info)); + i_zero(&user_info); user_info.service = REPLICATOR_AUTH_SERVICE_NAME; /* add all users into replication queue, so that we can start doing diff --git a/src/replication/replicator/replicator-queue.c b/src/replication/replicator/replicator-queue.c index 6ced4aafd1..8474dd91ae 100644 --- a/src/replication/replicator/replicator-queue.c +++ b/src/replication/replicator/replicator-queue.c @@ -310,7 +310,7 @@ replicator_queue_import_line(struct replicator_queue *queue, const char *line) if (str_array_length(args) < 7) return -1; - memset(&tmp_user, 0, sizeof(tmp_user)); + i_zero(&tmp_user); username = args[0]; state = t_strdup_noconst(args[6]); if (username[0] == '\0' || diff --git a/src/stats/client-export.c b/src/stats/client-export.c index 3b9521190b..583058ae89 100644 --- a/src/stats/client-export.c +++ b/src/stats/client-export.c @@ -70,7 +70,7 @@ mail_export_parse_filter(const char *const *args, pool_t pool, since= connected */ - memset(filter_r, 0, sizeof(*filter_r)); + i_zero(filter_r); for (; *args != NULL; args++) { if (strncmp(*args, "user=", 5) == 0) filter_r->user = p_strdup(pool, *args + 5); diff --git a/src/stats/client-reset.c b/src/stats/client-reset.c index 4b19c757df..6f00b61dc8 100644 --- a/src/stats/client-reset.c +++ b/src/stats/client-reset.c @@ -15,7 +15,7 @@ int client_stats_reset(struct client *client, const char *const *args ATTR_UNUSE g->num_logins = 0; g->num_cmds = 0; g->reset_timestamp = ioloop_time; - memset(&(g->last_update), 0, sizeof(g->last_update)); + i_zero(&g->last_update); o_stream_nsend_str(client->output, "OK\n"); return 0; } diff --git a/src/stats/main.c b/src/stats/main.c index c731d54850..f5d85b2d8d 100644 --- a/src/stats/main.c +++ b/src/stats/main.c @@ -31,7 +31,7 @@ static void main_preinit(void) { struct module_dir_load_settings mod_set; - memset(&mod_set, 0, sizeof(mod_set)); + i_zero(&mod_set); mod_set.abi_version = DOVECOT_ABI_VERSION; mod_set.require_init_funcs = TRUE; diff --git a/src/util/script-login.c b/src/util/script-login.c index 956e7404be..cc902970cf 100644 --- a/src/util/script-login.c +++ b/src/util/script-login.c @@ -89,7 +89,7 @@ static void client_connected(struct master_service_connection *conn) i_fatal("Missing input fields"); i = 0; - memset(&input, 0, sizeof(input)); + i_zero(&input); input.module = "mail"; /* need to get mail_uid, mail_gid */ input.service = "script-login"; (void)net_addr2ip(args[i++], &input.local_ip);