diff --git a/lib/notmuch.h b/lib/notmuch.h index 2e6ec2af..44263a66 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -2262,6 +2262,9 @@ notmuch_message_properties_destroy (notmuch_message_properties_t *properties); * valid string. Whereas when this function returns FALSE, * notmuch_tags_get will return NULL. * + * It is acceptable to pass NULL for 'tags', in which case this + * function will always return FALSE. + * See the documentation of notmuch_message_get_tags for example code * showing how to iterate over a notmuch_tags_t object. */ diff --git a/lib/tags.c b/lib/tags.c index c7d3f66f..ec5366ff 100644 --- a/lib/tags.c +++ b/lib/tags.c @@ -48,7 +48,7 @@ _notmuch_tags_create (const void *ctx, notmuch_string_list_t *list) notmuch_bool_t notmuch_tags_valid (notmuch_tags_t *tags) { - return tags->iterator != NULL; + return tags && (tags->iterator != NULL); } const char * diff --git a/test/T565-lib-tags.sh b/test/T565-lib-tags.sh index 0f3595d2..2a59f8dd 100755 --- a/test/T565-lib-tags.sh +++ b/test/T565-lib-tags.sh @@ -68,7 +68,6 @@ test_expect_equal_file EXPECTED OUTPUT.clean restore_database test_begin_subtest "NULL tags are not valid" -test_subtest_known_broken cat c_head - c_tail <<'EOF' | test_C ${MAIL_DIR} { notmuch_bool_t valid = TRUE;