git: 4f642f569b47 - main - pfctl: match broadcast address behaviour to the kernel
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 03 May 2025 08:14:29 UTC
The branch main has been updated by kp:
URL: https://cgit.FreeBSD.org/src/commit/?id=4f642f569b47692a53ce142a6b64c506122b0c22
commit 4f642f569b47692a53ce142a6b64c506122b0c22
Author: Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2025-05-02 12:26:37 +0000
Commit: Kristof Provost <kp@FreeBSD.org>
CommitDate: 2025-05-03 08:13:53 +0000
pfctl: match broadcast address behaviour to the kernel
When using a /32 IPv4 interface address, pfctl(8) reports a 0.0.0.0
as broadcast address. The kernel does not consider this a broadcast
address and ifconfig(8) has a check to exclude it. Use the same
check in pfctl(8).
Found by regress/sbin/pfctl pfi2; OK mikeb@
Obtained from: OpenBSD, bluhm <bluhm@openbsd.org>, cf181e999d
Sponsored by: Rubicon Communications, LLC ("Netgate")
---
sbin/pfctl/pfctl_parser.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/sbin/pfctl/pfctl_parser.c b/sbin/pfctl/pfctl_parser.c
index 8a64578b136d..d814b5f200e1 100644
--- a/sbin/pfctl/pfctl_parser.c
+++ b/sbin/pfctl/pfctl_parser.c
@@ -1715,6 +1715,8 @@ ifa_lookup(char *ifa_name, int flags)
if ((flags & PFI_AFLAG_BROADCAST) &&
!(p->ifa_flags & IFF_BROADCAST))
continue;
+ if ((flags & PFI_AFLAG_BROADCAST) && p->bcast.v4.s_addr == 0)
+ continue;
if ((flags & PFI_AFLAG_PEER) &&
!(p->ifa_flags & IFF_POINTOPOINT))
continue;