From e70df920851c6c00000b7707e3b61650548fbce7 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Wed, 25 May 2022 07:51:14 -0300 Subject: [PATCH] lib/tag: handle NULL argument to notmuch_tags_valid Make the behaviour when passed NULL consistent with notmuch_filenames_valid. The library already passes the result of notmuch_message_get_tags without checking for NULL, so it should be handled. --- lib/notmuch.h | 3 +++ lib/tags.c | 2 +- test/T565-lib-tags.sh | 1 - 3 files changed, 4 insertions(+), 2 deletions(-) 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; -- 2.43.0