[Bug 235754] pfctl: Lower limit for -T replace than -T add

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Fri Feb 15 09:02:54 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=235754

            Bug ID: 235754
           Summary: pfctl: Lower limit for -T replace than -T add
           Product: Base System
           Version: 12.0-RELEASE
          Hardware: amd64
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: bugs at FreeBSD.org
          Reporter: solarcatcher at gmx.de

I use a cron job to update a table of badhosts, following the approach shown
here https://www.geoghegan.ca/pfbadhost.html.

On FreeBSD 11 the nightly replace works fine.
On FreeBSD 12.0-RELEASE-p3 (and on the latest HardenedBSD 12-STABLE) update of
the pf table fails with the following message "pfctl: Invalid argument."

On further inspection, pfctl does not anymore allow to replace a table with
more than 32768 (2^15) IP addresses. Flushing and adding works fine, just
replacing leads to the error.

How to reproduce
Download list of 32769 badhosts to /tmp/pf-badhost.txt:
https://gist.github.com/utrenkner/617534545407587a8919dc6b47676f6e

Add this line to pf.conf:
table <pfbadhost> persist file "/tmp/pf-badhost.txt"

Load new rules:
pfctl -f /etc/pf.conf

Verify that table <pfbadhost> has 32769 entries:
pfctl -t pfbadhost -T show | wc -l

Now, try to replace table:
pfctl -t pfbadhost -T replace -f /tmp/pf-badhost.txt

This will fail. Remove one IP address from /tmp/pf-badhost.txt and try
replacing table again:
pfctl -t pfbadhost -T replace -f /tmp/pf-badhost.txt

Result: "1 addresses deleted."

I can -T flush and -T add, but it seems a bug to me that -T replace does not
work with the same number of IP addresses.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list