]> git.ipfire.org Git - thirdparty/lldpd.git/commitdiff
interfaces: handle the case where the provided MAC address is incorrect
authorVincent Bernat <vincent@bernat.im>
Tue, 1 Dec 2015 08:27:34 +0000 (09:27 +0100)
committerVincent Bernat <vincent@bernat.im>
Tue, 1 Dec 2015 08:27:34 +0000 (09:27 +0100)
Some drivers, like veth are unable to provide an appropriate MAC
address. Warn the user, keep the one we have.

src/daemon/interfaces-linux.c

index afad6485258beb2aa7a14b12913d38a03bfda63b..733d49fe2d181cf4ebe6b4ff7a6f3b8fbffbe936 100644 (file)
@@ -252,6 +252,14 @@ iflinux_get_permanent_mac(struct lldpd *cfg,
                    iface->name);
                return;
        }
+       size_t i;
+       for (i = 0; i < ETHER_ADDR_LEN; i++)
+               if (mac[i] != 0) break;
+       if (i == ETHER_ADDR_LEN) {
+               log_warnx("interfaces", "driver for %s do not provide a permanent MAC address",
+                   iface->name);
+               return;
+       }
        memcpy(iface->address, mac,
            ETHER_ADDR_LEN);
 }