Quoth Justus Winter on Feb 19 at 12:56 am: > 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 <4winter@informatik.uni-hamburg.de> LGTM. Nice catch. > --- > 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) {