cli/config: allocate config using talloc_zero
authorJani Nikula <jani@nikula.org>
Sat, 17 Dec 2016 16:20:26 +0000 (18:20 +0200)
committerDavid Bremner <david@tethera.net>
Sat, 7 Jan 2017 12:24:07 +0000 (08:24 -0400)
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

index cdb4088d1535e1d04a54f6ebb877f8812dfb755f..6d50be4c31504b3660c46b42e58ca20e3bc08668 100644 (file)
@@ -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;