From 08b6fd75ab5691e31bc9c3fbcbdfc719f9b5fe62 Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Sat, 17 Dec 2016 18:20:26 +0200 Subject: [PATCH] cli/config: allocate config using talloc_zero Do not initialize each field separately. It's more robust to allocate the config with zero initialization, and only set the non-zero defaults individually. --- notmuch-config.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/notmuch-config.c b/notmuch-config.c index cdb4088d..6d50be4c 100644 --- a/notmuch-config.c +++ b/notmuch-config.c @@ -334,7 +334,7 @@ notmuch_config_open (void *ctx, int file_had_search_group; int file_had_crypto_group; - notmuch_config_t *config = talloc (ctx, notmuch_config_t); + notmuch_config_t *config = talloc_zero (ctx, notmuch_config_t); if (config == NULL) { fprintf (stderr, "Out of memory.\n"); return NULL; @@ -342,6 +342,9 @@ notmuch_config_open (void *ctx, talloc_set_destructor (config, notmuch_config_destructor); + /* non-zero defaults */ + config->maildir_synchronize_flags = TRUE; + if (filename) { config->filename = talloc_strdup (config, filename); } else if ((notmuch_config_env = getenv ("NOTMUCH_CONFIG"))) { @@ -353,21 +356,6 @@ notmuch_config_open (void *ctx, config->key_file = g_key_file_new (); - config->is_new = FALSE; - config->database_path = NULL; - config->user_name = NULL; - config->user_primary_email = NULL; - config->user_other_email = NULL; - config->user_other_email_length = 0; - config->new_tags = NULL; - config->new_tags_length = 0; - config->new_ignore = NULL; - config->new_ignore_length = 0; - config->maildir_synchronize_flags = TRUE; - config->search_exclude_tags = NULL; - config->search_exclude_tags_length = 0; - config->crypto_gpg_path = NULL; - if (! get_config_from_file (config, create_new)) { talloc_free (config); return NULL;