diff options
Diffstat (limited to 'zebra/zebra_rib.c')
| -rw-r--r-- | zebra/zebra_rib.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c index a1c8cd3059..8cea605f41 100644 --- a/zebra/zebra_rib.c +++ b/zebra/zebra_rib.c @@ -391,11 +391,10 @@ int zebra_check_addr(const struct prefix *p) if (p->family == AF_INET) { uint32_t addr; - addr = p->u.prefix4.s_addr; - addr = ntohl(addr); + addr = ntohl(p->u.prefix4.s_addr); - if (IPV4_NET127(addr) || IN_CLASSD(addr) - || IPV4_LINKLOCAL(addr)) + if (IPV4_NET127(addr) || IN_CLASSD(addr) || + (IPV4_LINKLOCAL(addr) && !IPV4_CLASS_E(addr))) return 0; } if (p->family == AF_INET6) { |
