(krb5_parse_address): filter out dup addresses from getaddrinfo

git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14479 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2005-01-05 17:36:11 +00:00
parent ef82bfdf9a
commit 69a18af8ac

View File

@@ -787,11 +787,20 @@ krb5_parse_address(krb5_context context,
++n;
ALLOC_SEQ(addresses, n);
if (addresses->val == NULL) {
krb5_set_error_string(context, "malloc: out of memory");
freeaddrinfo(ai);
return ENOMEM;
}
addresses->len = 0;
for (a = ai, i = 0; a != NULL; a = a->ai_next) {
if(krb5_sockaddr2address (context, ai->ai_addr,
&addresses->val[i]) == 0)
i++;
if (krb5_sockaddr2address (context, ai->ai_addr, &addresses->val[i]))
continue;
if(krb5_address_search(context, &addresses->val[i], addresses))
continue;
addresses->len = i;
i++;
}
freeaddrinfo (ai);
return 0;