summaryrefslogtreecommitdiff
path: root/zebra/zebra_rib.c
diff options
context:
space:
mode:
Diffstat (limited to 'zebra/zebra_rib.c')
-rw-r--r--zebra/zebra_rib.c7
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) {