Previously opening a notmuch database in read write mode that has been locked resulted in the notmuch_database_open function executing notmuch_database_close as a cleanup function. notmuch_database_close failed to check whether the xapian database has in fact been created.
Add a check whether the xapian database object has actually been created before trying to call its flush method. Signed-off-by: Justus Winter <4win...@informatik.uni-hamburg.de> --- lib/database.cc | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/lib/database.cc b/lib/database.cc index c928d02..5efa85e 100644 --- a/lib/database.cc +++ b/lib/database.cc @@ -716,7 +716,8 @@ void notmuch_database_close (notmuch_database_t *notmuch) { try { - if (notmuch->mode == NOTMUCH_DATABASE_MODE_READ_WRITE) + if (notmuch->xapian_db != NULL && + notmuch->mode == NOTMUCH_DATABASE_MODE_READ_WRITE) (static_cast <Xapian::WritableDatabase *> (notmuch->xapian_db))->flush (); } catch (const Xapian::Error &error) { if (! notmuch->exception_reported) { -- 1.7.9 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org http://notmuchmail.org/mailman/listinfo/notmuch