X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=lib%2Fmessage.cc;h=1e325e23f69fba316f21deeb39cff0f7935e78fc;hb=6bc0ec618d55aed84b1b0a810c0f1ac877a4e430;hp=4a5fae1e5901f584bdddcdd52bb9563aea585d5d;hpb=717279fbcf7e057957c7c6726cd4930393cd5fdf;p=notmuch diff --git a/lib/message.cc b/lib/message.cc index 4a5fae1e..1e325e23 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -201,6 +201,7 @@ _notmuch_message_create_for_message_id (notmuch_database_t *notmuch, } catch (const Xapian::Error &error) { fprintf (stderr, "A Xapian exception occurred creating message: %s\n", error.get_msg().c_str()); + notmuch->exception_reported = TRUE; *status_ret = NOTMUCH_PRIVATE_STATUS_XAPIAN_EXCEPTION; return NULL; } @@ -410,10 +411,14 @@ _notmuch_message_set_filename (notmuch_message_t *message, db_path = notmuch_database_get_path (message->notmuch); db_path_len = strlen (db_path); - if (*s == '/' && strncmp (s, db_path, db_path_len) == 0 - && strlen (s) > db_path_len) + if (*s == '/' && strlen (s) > db_path_len + && strncmp (s, db_path, db_path_len) == 0) { - s += db_path_len + 1; + s += db_path_len; + while (*s == '/') s++; + + if (!*s) + INTERNAL_ERROR ("Message filename was same as db prefix."); } message->doc.set_data (s);