pfilctl: fix 'pfilctl hooks' when nothing is connected

The 'hooks' command actually worked accidentially until now.  It used
PFILIOC_LISTHEADS to determine current number of hooks.  This worked when
at least one head had a hook connected to it.

(cherry picked from commit 1bfe195143ffb6832ac6702e281964541554fcb3)
This commit is contained in:
Gleb Smirnoff 2024-03-28 14:10:15 -07:00
parent bf4972a48d
commit cc16c3c3cb

View file

@ -151,8 +151,8 @@ listhooks(int argc __unused, char *argv[] __unused)
u_int nhooks, i;
plh.pio_nhooks = 0;
if (ioctl(dev, PFILIOC_LISTHEADS, &plh) != 0)
err(1, "ioctl(PFILIOC_LISTHEADS)");
if (ioctl(dev, PFILIOC_LISTHOOKS, &plh) != 0)
err(1, "ioctl(PFILIOC_LISTHOOKS)");
retry:
plh.pio_hooks = calloc(plh.pio_nhooks, sizeof(struct pfilioc_hook));
if (plh.pio_hooks == NULL)