From: Yu Watanabe Date: Wed, 17 Feb 2021 17:50:50 +0000 (+0900) Subject: resolve: make manager_find_ifindex() or friends return earlier X-Git-Tag: v248-rc1~73^2~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bb3b08ad983a15fe948e20443376ddbf0cab6ce7;p=thirdparty%2Fsystemd.git resolve: make manager_find_ifindex() or friends return earlier --- diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index d9192d99f65..18dc3d29e9c 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -697,6 +697,12 @@ LinkAddress *link_find_address(Link *l, int family, const union in_addr_union *i assert(l); + if (!IN_SET(family, AF_INET, AF_INET6)) + return NULL; + + if (!in_addr) + return NULL; + LIST_FOREACH(addresses, a, l->addresses) if (a->family == family && in_addr_equal(family, &a->in_addr, in_addr)) return a; diff --git a/src/resolve/resolved-manager.c b/src/resolve/resolved-manager.c index a2a2cf49547..6cc3a5d56f7 100644 --- a/src/resolve/resolved-manager.c +++ b/src/resolve/resolved-manager.c @@ -1153,6 +1153,12 @@ int manager_find_ifindex(Manager *m, int family, const union in_addr_union *in_a assert(m); + if (!IN_SET(family, AF_INET, AF_INET6)) + return 0; + + if (!in_addr) + return 0; + a = manager_find_link_address(m, family, in_addr); if (a) return a->link->ifindex; @@ -1248,6 +1254,12 @@ LinkAddress* manager_find_link_address(Manager *m, int family, const union in_ad assert(m); + if (!IN_SET(family, AF_INET, AF_INET6)) + return NULL; + + if (!in_addr) + return NULL; + HASHMAP_FOREACH(l, m->links) { LinkAddress *a;