]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ldpd: add missing check on disc_find_iface()
authorRenato Westphal <renato@opensourcerouting.org>
Mon, 12 Dec 2016 20:35:30 +0000 (18:35 -0200)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 14 Dec 2016 18:21:08 +0000 (13:21 -0500)
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 <renato@opensourcerouting.org>
(cherry picked from commit 6710e336b3afd913c5b15677159e8274680ea8cb)

ldpd/packet.c

index 9b3151d720e6d82e8708af57b6a3631b718cfb7e..ad7818131188fab49bad34ed913c6aeb1e1a0963 100644 (file)
@@ -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: