host: Properly handle NULL in host_create_from_string[_and_family]

This commit is contained in:
Tobias Brunner 2015-06-11 15:07:07 +02:00
parent 2096d54198
commit 65579569ad
2 changed files with 10 additions and 0 deletions

View File

@ -354,6 +354,10 @@ host_t *host_create_from_string_and_family(char *string, int family,
struct sockaddr_in6 v6;
} addr;
if (!string)
{
return NULL;
}
if (streq(string, "%any"))
{
return host_create_any_port(family ? family : AF_INET, port);

View File

@ -104,6 +104,9 @@ START_TEST(test_create_from_string_v4)
{
host_t *host;
host = host_create_from_string(NULL, 500);
ck_assert(!host);
host = host_create_from_string("%any", 500);
verify_any(host, AF_INET, 500);
host->destroy(host);
@ -196,6 +199,7 @@ static void test_create_from_string_and_family_addr(char *string, chunk_t addr,
START_TEST(test_create_from_string_and_family_v4)
{
test_create_from_string_and_family_any(NULL, AF_INET, AF_UNSPEC);
test_create_from_string_and_family_any("%any", AF_INET, AF_INET);
test_create_from_string_and_family_any("%any4", AF_INET, AF_INET);
test_create_from_string_and_family_any("0.0.0.0", AF_INET, AF_INET);
@ -210,6 +214,7 @@ END_TEST
START_TEST(test_create_from_string_and_family_v6)
{
test_create_from_string_and_family_any(NULL, AF_INET6, AF_UNSPEC);
test_create_from_string_and_family_any("%any", AF_INET6, AF_INET6);
test_create_from_string_and_family_any("%any6", AF_INET6, AF_INET6);
test_create_from_string_and_family_any("::", AF_INET6, AF_INET6);
@ -224,6 +229,7 @@ END_TEST
START_TEST(test_create_from_string_and_family_other)
{
test_create_from_string_and_family_any(NULL, AF_UNSPEC, AF_UNSPEC);
test_create_from_string_and_family_any("%any", AF_UNSPEC, AF_INET);
test_create_from_string_and_family_any("%any4", AF_UNSPEC, AF_INET);
test_create_from_string_and_family_any("0.0.0.0", AF_UNSPEC, AF_INET);