]> git.cworth.org Git - notmuch/commitdiff
lib/open: fix leaks calling _trial_open
authorDavid Bremner <david@tethera.net>
Sat, 27 Mar 2021 12:12:28 +0000 (09:12 -0300)
committerDavid Bremner <david@tethera.net>
Sat, 27 Mar 2021 12:12:28 +0000 (09:12 -0300)
_trial_open can't know if the PATH_ERROR return value will cause the
error message to be returned from the library, so it's up the caller
to clean up if not.

lib/open.cc

index 8f572b0b4f5557a43e7ab516edbaf39580e75173..dc191d64aad0489890aed9bc0af10fd50f7ea8a5 100644 (file)
@@ -280,6 +280,9 @@ _notmuch_choose_xapian_path (void *ctx, const char *database_path,
     if (status != NOTMUCH_STATUS_PATH_ERROR)
        goto DONE;
 
+    if (*message_ptr)
+       free (*message_ptr);
+
     notmuch_path = talloc_asprintf (ctx, "%s/.notmuch", database_path);
     status = _db_dir_exists (notmuch_path, message_ptr);
     if (status)
@@ -648,6 +651,9 @@ notmuch_database_create_with_config (const char *database_path,
        goto DONE;
     }
 
+    if (message)
+       free (message);
+
     status = _finish_open (notmuch,
                           profile,
                           NOTMUCH_DATABASE_MODE_READ_WRITE,