When an interface is converted from one type to another and cannot be
initialized, we free it twice: once on the error and again when removing
unused interfaces.
Remove the first occurrence and ensure we get in a state where the
interface can be both cleaned up or reinstantiated in a later round.
lldpd (1.0.20)
* Fix:
+ Do not break zero-copy traffic on Linux (#732 and #733)
+ + Fix crash on rapid addition/removal of interfaces (#744)
lldpd (1.0.19)
* Changes:
hardware->h_ifname);
if (hardware->h_ops && hardware->h_ops->cleanup) {
hardware->h_ops->cleanup(cfg, hardware);
+ hardware->h_ops = NULL;
levent_hardware_release(hardware);
levent_hardware_init(hardware);
}
if (init(cfg, hardware) != 0) {
log_warnx("interfaces", "unable to initialize %s",
hardware->h_ifname);
- lldpd_hardware_cleanup(cfg, hardware);
continue;
}
hardware->h_ops = ops;