The recent change to DIOCGETRULE allows applications which
authorsashan <sashan@openbsd.org>
Tue, 4 Jul 2023 11:34:19 +0000 (11:34 +0000)
committersashan <sashan@openbsd.org>
Tue, 4 Jul 2023 11:34:19 +0000 (11:34 +0000)
commitd2364f60079dfc6e8a6bc0ad89f58b3433f3bafe
treea32845251868af455fde700d7f05df80c248acd7
parentc82a04dd185ae3534d3a35b5cfa36b2bb068527b
The recent change to DIOCGETRULE allows applications which
periodically read rules from pf(4) to consume all kernel
memory. The bug has been discovered and root caused by florian@.
In this particular case it was snmpd(8) what ate all kernel
memory.

This commit introduces DIOCXEND to pf(4) so applications such
as snmpd(8) and systat(1) to close ticket/transaction when
they are done with fetching the rules. This change also
updates snmpd(8) and systat(1) to use newly introduced
DIOCXEND ioctl(2).

OK claudio@, deraadt@, kn@
libexec/snmpd/snmpd_metrics/mib.c
sys/net/pf_ioctl.c
sys/net/pfvar.h
usr.bin/systat/pftop.c