notmuch-config: talloc_strdup MAILDIR and NAME environment variables
authorTomi Ollila <tomi.ollila@iki.fi>
Thu, 7 Aug 2014 15:19:50 +0000 (18:19 +0300)
committerDavid Bremner <david@tethera.net>
Fri, 8 Aug 2014 00:12:27 +0000 (21:12 -0300)
When defined -- the pointer is soon given to talloc_free() which
expects it to be allocated by talloc.

notmuch-config.c

index 88831e278f9fbf10b2d30eccf81a44a3052bfc26..db487dbe828ba808b6c3223a8d33df581864d74f 100644 (file)
@@ -324,7 +324,9 @@ notmuch_config_open (void *ctx,
 
     if (notmuch_config_get_database_path (config) == NULL) {
        char *path = getenv ("MAILDIR");
-       if (! path)
+       if (path)
+           path = talloc_strdup (config, path);
+       else
            path = talloc_asprintf (config, "%s/mail",
                                    getenv ("HOME"));
        notmuch_config_set_database_path (config, path);
@@ -333,7 +335,9 @@ notmuch_config_open (void *ctx,
 
     if (notmuch_config_get_user_name (config) == NULL) {
        char *name = getenv ("NAME");
-       if (! name)
+       if (name)
+           name = talloc_strdup (config, name);
+       else
            name = get_name_from_passwd_file (config);
        notmuch_config_set_user_name (config, name);
        talloc_free (name);