From 4913a1680eb922f6747b9ebfec18848f51a71bac Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Mon, 12 Dec 2016 18:35:30 -0200 Subject: [PATCH] ldpd: add missing check on disc_find_iface() When we find an interface on disc_find_iface(), we need to check if it's enabled for the address-family (IPv4 or IPv6) of the received packet. We were doing that only for targeted hellos, do it for link hellos as well. Signed-off-by: Renato Westphal (cherry picked from commit 6710e336b3afd913c5b15677159e8274680ea8cb) --- ldpd/packet.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ldpd/packet.c b/ldpd/packet.c index 9b3151d720..ad78181311 100644 --- a/ldpd/packet.c +++ b/ldpd/packet.c @@ -292,16 +292,16 @@ disc_find_iface(unsigned int ifindex, int af, union ldpd_addr *src, if (iface == NULL) return (NULL); + ia = iface_af_get(iface, af); + if (!ia->enabled) + return (NULL); + /* * For unicast packets, we just need to make sure that the interface * is enabled for the given address-family. */ - if (!multicast) { - ia = iface_af_get(iface, af); - if (ia->enabled) - return (iface); - return (NULL); - } + if (!multicast) + return (iface); switch (af) { case AF_INET: -- 2.39.5