]> git.notmuchmail.org Git - notmuch/commitdiff
lib: catch Xapian exceptions in n_m_get_tags
authorDavid Bremner <david@tethera.net>
Sun, 5 Jul 2020 13:00:19 +0000 (10:00 -0300)
committerDavid Bremner <david@tethera.net>
Tue, 14 Jul 2020 10:12:52 +0000 (07:12 -0300)
This allows the function to return an error value rather than
crashing.

lib/message.cc
test/T560-lib-error.sh

index f4306e2cacb6a780b51df44b68c7508f9edcc3b8..364cdc9d4e86764ddd5502f5e0034c1424a555ac 100644 (file)
@@ -1206,7 +1206,12 @@ notmuch_message_get_tags (notmuch_message_t *message)
 {
     notmuch_tags_t *tags;
 
-    _notmuch_message_ensure_metadata (message, message->tag_list);
+    try {
+       _notmuch_message_ensure_metadata (message, message->tag_list);
+    } catch (Xapian::Error &error) {
+       LOG_XAPIAN_EXCEPTION (message, error);
+       return NULL;
+    }
 
     tags = _notmuch_tags_create (message, message->tag_list);
     /* _notmuch_tags_create steals the reference to the tag_list, but
index 05d41615584b0fc6324ffc623038fda3323b3c49..fff215e4d2b3690a7c2b287f96db783e7ddc5094 100755 (executable)
@@ -471,7 +471,6 @@ EOF
 test_expect_equal_file EXPECTED OUTPUT
 
 test_begin_subtest "Handle getting tags from closed database"
-test_subtest_known_broken
 cat c_head2 - c_tail <<'EOF' | test_C ${MAIL_DIR}
     {
         notmuch_tags_t *result;