[PATCH] lib/open: fix leaks calling _trial_open

Subject: [PATCH] lib/open: fix leaks calling _trial_open

Date: Sat, 27 Mar 2021 09:20:28 -0300

To: notmuch@notmuchmail.org

Cc: David Bremner

From: David Bremner


_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 | 6 ++++++
 1 file changed, 6 insertions(+)

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,
-- 
2.30.2
_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: