pfctl: distinguish broadcast and PPP peer addresses
pfctl_parser.c, ifa_load() should distinguish between broadcast and PPP peer address when it populates interface table for rule parser. OK @claudio, OK @dlg Obtained from: OpenBSD, sashan <sashan@openbsd.org>, 2e871bec67 Sponsored by: Rubicon Communications, LLC ("Netgate")
This commit is contained in:
@@ -1598,14 +1598,15 @@ ifa_load(void)
|
||||
copy_satopfaddr(&n->addr.v.a.addr, ifa->ifa_addr);
|
||||
ifa->ifa_netmask->sa_family = ifa->ifa_addr->sa_family;
|
||||
copy_satopfaddr(&n->addr.v.a.mask, ifa->ifa_netmask);
|
||||
if (ifa->ifa_broadaddr != NULL &&
|
||||
if (ifa->ifa_flags & IFF_BROADCAST &&
|
||||
ifa->ifa_broadaddr != NULL &&
|
||||
ifa->ifa_broadaddr->sa_len != 0) {
|
||||
ifa->ifa_broadaddr->sa_family =
|
||||
ifa->ifa_addr->sa_family;
|
||||
ifa->ifa_broadaddr->sa_family = ifa->ifa_addr->sa_family;
|
||||
copy_satopfaddr(&n->bcast, ifa->ifa_broadaddr);
|
||||
}
|
||||
if (ifa->ifa_dstaddr != NULL &&
|
||||
} else if (ifa->ifa_flags & IFF_POINTOPOINT &&
|
||||
ifa->ifa_dstaddr != NULL &&
|
||||
ifa->ifa_dstaddr->sa_len != 0) {
|
||||
ifa->ifa_dstaddr->sa_family =
|
||||
ifa->ifa_addr->sa_family;
|
||||
|
||||
Reference in New Issue
Block a user