[PATCH 3/6] lib/tag: handle NULL argument to notmuch_tags_valid

Subject: [PATCH 3/6] lib/tag: handle NULL argument to notmuch_tags_valid

Date: Wed, 25 May 2022 07:51:14 -0300

To: notmuch@notmuchmail.org

Cc:

From: David Bremner


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.35.2

_______________________________________________
notmuch mailing list -- notmuch@notmuchmail.org
To unsubscribe send an email to notmuch-leave@notmuchmail.org

Thread: