From: Tobias Brunner Date: Tue, 16 Jul 2013 12:46:43 +0000 (+0200) Subject: linked-list: Don't require an argument for the item when enumerating X-Git-Tag: 5.1.0rc1~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1a9528f916166625889c201dc4acad9bb46db237;p=thirdparty%2Fstrongswan.git linked-list: Don't require an argument for the item when enumerating --- diff --git a/src/libstrongswan/collections/linked_list.c b/src/libstrongswan/collections/linked_list.c index 274ad8e5b0..dbbc2a98d8 100644 --- a/src/libstrongswan/collections/linked_list.c +++ b/src/libstrongswan/collections/linked_list.c @@ -138,7 +138,10 @@ METHOD(enumerator_t, enumerate, bool, this->finished = TRUE; return FALSE; } - *item = this->current->value; + if (item) + { + *item = this->current->value; + } return TRUE; } diff --git a/src/libstrongswan/tests/test_linked_list_enumerator.c b/src/libstrongswan/tests/test_linked_list_enumerator.c index 840e384c94..93d814b2c7 100644 --- a/src/libstrongswan/tests/test_linked_list_enumerator.c +++ b/src/libstrongswan/tests/test_linked_list_enumerator.c @@ -59,6 +59,22 @@ START_TEST(test_enumerate) } END_TEST +START_TEST(test_enumerate_null) +{ + enumerator_t *enumerator; + int round; + + round = 1; + enumerator = list->create_enumerator(list); + while (enumerator->enumerate(enumerator, NULL)) + { + round++; + } + ck_assert_int_eq(round, 6); + enumerator->destroy(enumerator); +} +END_TEST + START_TEST(test_reset_enumerator) { enumerator_t *enumerator; @@ -364,6 +380,7 @@ Suite *linked_list_enumerator_suite_create() tc = tcase_create("enumerate"); tcase_add_checked_fixture(tc, setup_list, teardown_list); tcase_add_test(tc, test_enumerate); + tcase_add_test(tc, test_enumerate_null); tcase_add_test(tc, test_reset_enumerator); tcase_add_test(tc, test_has_more_empty); tcase_add_test(tc, test_has_more);