diff options
author | Carl Worth <cworth@cworth.org> | 2010-10-22 17:55:07 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2010-10-22 17:56:58 -0700 |
commit | f6cb896bc4c0bafca1acd5ac3fb45169cd893e29 (patch) | |
tree | 092db814256b2e1a8f8a1b9bc81769c15c60b32d /lib | |
parent | 4606ea60a76c11a97e913f87b97d76e64b4bcf0c (diff) |
lib: Fix notmuch_query_search_threads to return NULL on any Xapian exception.
Previously, if the underlying search_messages hit an exception and returned
NULL, this function would ignore that and return a non-NULL, (but empty)
threads object. Fix this to properly propagate the error.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/notmuch.h | 2 | ||||
-rw-r--r-- | lib/query.cc | 4 |
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h index 505ad19..9a19699 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -400,6 +400,8 @@ notmuch_query_set_sort (notmuch_query_t *query, notmuch_sort_t sort); * notmuch_threads_t object. (For consistency, we do provide a * notmuch_threads_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_threads_t * notmuch_query_search_threads (notmuch_query_t *query); diff --git a/lib/query.cc b/lib/query.cc index d241dc1..59f4011 100644 --- a/lib/query.cc +++ b/lib/query.cc @@ -249,6 +249,10 @@ notmuch_query_search_threads (notmuch_query_t *query) free, NULL); threads->messages = notmuch_query_search_messages (query); + if (threads->messages == NULL) { + talloc_free (threads); + return NULL; + } threads->thread_id = NULL; |