[PATCH 2/3] lib: make notmuch_threads_valid return FALSE when passed NULL

Jani Nikula jani at nikula.org
Fri Jan 24 13:06:28 PST 2014


On Thu, 23 Jan 2014, David Bremner <david at tethera.net> wrote:
> Without this patch, the example code in the header docs crashes for certain
> invalid queries (see id:871u00oimv.fsf at approx.mit.edu)
> ---
>  lib/notmuch.h | 2 ++
>  lib/query.cc  | 3 +++
>  2 files changed, 5 insertions(+)
>
> diff --git a/lib/notmuch.h b/lib/notmuch.h
> index 02604c5..68896ae 100644
> --- a/lib/notmuch.h
> +++ b/lib/notmuch.h
> @@ -802,6 +802,8 @@ notmuch_query_destroy (notmuch_query_t *query);
>   * valid object. Whereas when this function returns FALSE,
>   * notmuch_threads_get will return NULL.
>   *
> + * If passed a NULL pointer, this function returns FALSE
> + *
>   * See the documentation of notmuch_query_search_threads for example
>   * code showing how to iterate over a notmuch_threads_t object.
>   */
> diff --git a/lib/query.cc b/lib/query.cc
> index ec60e2e..60ff8bd 100644
> --- a/lib/query.cc
> +++ b/lib/query.cc
> @@ -462,6 +462,9 @@ notmuch_threads_valid (notmuch_threads_t *threads)
>  {
>      unsigned int doc_id;
>  
> +    if (! threads)
> +	return FALSE;
> +

LGTM, and this is in line with notmuch_messages_valid().

BR,
Jani.

>      while (threads->doc_id_pos < threads->doc_ids->len) {
>  	doc_id = g_array_index (threads->doc_ids, unsigned int,
>  				threads->doc_id_pos);
> -- 
> 1.8.5.2
>
> _______________________________________________
> notmuch mailing list
> notmuch at notmuchmail.org
> http://notmuchmail.org/mailman/listinfo/notmuch


More information about the notmuch mailing list