lib: Ensure notmuch_query_search_messages returns NULL on an exception.

Previously, this function may have segfaulted immediately after
reporting the exception.
This commit is contained in:
Carl Worth 2010-04-24 07:25:12 -07:00
parent e3e0e26806
commit 138fd38afe
2 changed files with 6 additions and 2 deletions

View file

@ -439,6 +439,8 @@ notmuch_query_search_threads (notmuch_query_t *query);
* notmuch_messages_t object. (For consistency, we do provide a
* notmuch_messages_destroy function, but there's no good
* reason to call it if the query is about to be destroyed).
*
* If a Xapian exception occurs this function will return NULL.
*/
notmuch_messages_t *
notmuch_query_search_messages (notmuch_query_t *query);

View file

@ -163,14 +163,16 @@ notmuch_query_search_messages (notmuch_query_t *query)
messages->iterator = mset.begin ();
messages->iterator_end = mset.end ();
return &messages->base;
} catch (const Xapian::Error &error) {
fprintf (stderr, "A Xapian exception occurred performing query: %s\n",
error.get_msg().c_str());
fprintf (stderr, "Query string was: %s\n", query->query_string);
notmuch->exception_reported = TRUE;
talloc_free (messages);
return NULL;
}
return &messages->base;
}
notmuch_bool_t