From: David Bremner Date: Sat, 27 Mar 2021 12:12:28 +0000 (-0300) Subject: lib/open: fix leaks calling _trial_open X-Git-Tag: 0.32_rc0~38 X-Git-Url: https://git.notmuchmail.org/git?a=commitdiff_plain;h=4a8d67e357ff9bfe6ab7612ba052b72b9dcffa3f;p=notmuch lib/open: fix leaks calling _trial_open _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. --- diff --git a/lib/open.cc b/lib/open.cc index 8f572b0b..dc191d64 100644 --- a/lib/open.cc +++ b/lib/open.cc @@ -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,