From ab3c5b8abbfe6510b0f38a2bb64577f84359c2c7 Mon Sep 17 00:00:00 2001 From: Allen Winter Date: Wed, 5 Oct 2022 11:40:59 -0400 Subject: icalcomponent_vanew - document passing NULL as final argument fixes: #585 --- src/libical/icalcomponent.c | 2 ++ src/libical/icalcomponent.h | 2 ++ src/test/regression.c | 12 +----------- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/libical/icalcomponent.c b/src/libical/icalcomponent.c index 04f61449..c89f4cfd 100644 --- a/src/libical/icalcomponent.c +++ b/src/libical/icalcomponent.c @@ -115,6 +115,8 @@ icalcomponent *icalcomponent_new(icalcomponent_kind kind) icalcomponent *icalcomponent_vanew(icalcomponent_kind kind, ...) { + /* See https://github.com/libical/libical/issues/585. Caller must pass NULL as final argument */ + va_list args; icalcomponent *impl = icalcomponent_new_impl(kind); diff --git a/src/libical/icalcomponent.h b/src/libical/icalcomponent.h index 2b00fee7..e0501bca 100644 --- a/src/libical/icalcomponent.h +++ b/src/libical/icalcomponent.h @@ -52,6 +52,8 @@ LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_clone(icalcomponent *compon LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_new_from_string(const char *str); /** @brief Constructor + * + * Make sure to pass NULL (not 0) as the final argument! */ LIBICAL_ICAL_EXPORT icalcomponent *icalcomponent_vanew(icalcomponent_kind kind, ...); diff --git a/src/test/regression.c b/src/test/regression.c index 130cdbfa..82b52915 100644 --- a/src/test/regression.c +++ b/src/test/regression.c @@ -4992,24 +4992,14 @@ void test_icalcomponent_with_lastmodified(void) icalcomponent *comp; struct icaltimetype lm = icaltime_from_timet_with_zone(1661280150, 0, NULL); -#if 1 comp = icalcomponent_vanew(ICAL_VCALENDAR_COMPONENT, icalproperty_new_version("2.0"), icalproperty_new_prodid("PROD-ABC"), icalproperty_new_uid("1234abcd"), icalproperty_new_lastmodified(lm), icalproperty_new_name("name1"), - 0); + NULL); /* NOT 0! */ icalcomponent_free(comp); -#else - comp = icalcomponent_new(ICAL_VCALENDAR_COMPONENT); - icalcomponent_add_property(comp, icalproperty_new_version("2.0")); - icalcomponent_add_property(comp, icalproperty_new_prodid("PROD-ABC")); - icalcomponent_add_property(comp, icalproperty_new_uid("1234abcd")); - icalcomponent_add_property(comp, icalproperty_new_lastmodified(lm)); - icalcomponent_add_property(comp, icalproperty_new_name("name1")); - icalcomponent_free(comp); -#endif } int main(int argc, char *argv[]) -- cgit v1.2.1