mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-06-14 22:07:43 +00:00
lib: address type-punned pointers in prefix_same()
IPV4_ADDR_SAME() wasn't passed the right union member, this could cause a bug due to strict-aliasing. IPV6_ADDR_SAME() case got its fix before the error could be created by macro upgrade.
This commit is contained in:
parent
733cd9e579
commit
fe40bfa2e1
@ -2411,11 +2411,11 @@ prefix_same (const struct prefix *p1, const struct prefix *p2)
|
|||||||
if (p1->family == p2->family && p1->prefixlen == p2->prefixlen)
|
if (p1->family == p2->family && p1->prefixlen == p2->prefixlen)
|
||||||
{
|
{
|
||||||
if (p1->family == AF_INET)
|
if (p1->family == AF_INET)
|
||||||
if (IPV4_ADDR_SAME (&p1->u.prefix, &p2->u.prefix))
|
if (IPV4_ADDR_SAME (&p1->u.prefix4.s_addr, &p2->u.prefix4.s_addr))
|
||||||
return 1;
|
return 1;
|
||||||
#ifdef HAVE_IPV6
|
#ifdef HAVE_IPV6
|
||||||
if (p1->family == AF_INET6 )
|
if (p1->family == AF_INET6 )
|
||||||
if (IPV6_ADDR_SAME (&p1->u.prefix, &p2->u.prefix))
|
if (IPV6_ADDR_SAME (&p1->u.prefix6.s6_addr, &p2->u.prefix6.s6_addr))
|
||||||
return 1;
|
return 1;
|
||||||
#endif /* HAVE_IPV6 */
|
#endif /* HAVE_IPV6 */
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user