summaryrefslogtreecommitdiff
path: root/proto/ospf/ospf.h
diff options
context:
space:
mode:
Diffstat (limited to 'proto/ospf/ospf.h')
-rw-r--r--proto/ospf/ospf.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/proto/ospf/ospf.h b/proto/ospf/ospf.h
index 74a8e316..664bc48f 100644
--- a/proto/ospf/ospf.h
+++ b/proto/ospf/ospf.h
@@ -587,6 +587,10 @@ lsa_get_ipv6_prefix(u32 *buf, ip_addr *addr, int *pxlen, u8 *pxopts, u16 *rest)
if (pxl > 96)
_I3(*addr) = *buf++;
+ /* Clean up remaining bits */
+ if (pxl < 128)
+ addr->addr[pxl / 32] &= u32_mkmask(pxl % 32);
+
return buf;
}