Sanjoy Mahajan <sanjoy@olin.edu> writes: > Probably because I kept using notmuch-emacs .elc code from 0.16 after > notmuch got upgraded to 0.17 (I rarely restart emacs), my Emacs > interface to notmuch started generating queries that caused Xapian > exceptions and segfaults. Here's one: > > $ notmuch show '( FW: Student Employment Orie.. )' > A Xapian exception occurred performing query: Unknown range operation > Query string was: ( FW: Student Employment Orie.. ) > Segmentation fault > > Restarting Emacs stopped those queries, so I don't think that's an > issue. However, notmuch itself probably should not segfault, even if > Xapian gets confused by the .. in the query (making it look like a date > range). > Looking at the example code in lib/notmuch.h (which, surprise, we use in notmuch-show), we see for (threads = notmuch_query_search_threads (query); notmuch_threads_valid (threads); notmuch_threads_move_to_next (threads)) { thread = notmuch_threads_get (threads); .... notmuch_thread_destroy (thread); } notmuch_query_search_theads documents that it might return NULL, but notmuch_threads_valid does not handle NULL input. It seems to me that notmuch_threads_valid should just return FALSE on NULL input. d