aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2026-06-16 19:37:35 +0000
committerMark Johnston <markj@FreeBSD.org>2026-06-16 20:19:44 +0000
commit34e155336f0dd10efa8261b971fd540d92817339 (patch)
treefd2f72b1422babb73348faa3e6e6cfe458aa9ce5
parent6616c7a9a17d1870a7f15aded0b499b1373ba8b0 (diff)
pfctl: pfctl_get_astats() doesn't set errno
After commit 08f54dfca197 pfctl_get_astats() doesn't set errno anymore, except in one place. Fix up that one place and adjust callers appropriately. Reviewed by: kp Fixes: 08f54dfca197 ("pf: convert DIOCRGETASTATS to netlink") Differential Revision: https://reviews.freebsd.org/D57608
-rw-r--r--lib/libpfctl/libpfctl.c6
-rw-r--r--sbin/pfctl/pfctl_radix.c9
-rw-r--r--usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c6
3 files changed, 13 insertions, 8 deletions
diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c
index 839693269102..50d85a7869c9 100644
--- a/lib/libpfctl/libpfctl.c
+++ b/lib/libpfctl/libpfctl.c
@@ -3877,10 +3877,8 @@ pfctl_get_astats(struct pfctl_handle *h, const struct pfr_table *tbl,
uint32_t seq_id;
if (tbl == NULL || size == NULL || *size < 0 ||
- (*size && as == NULL)) {
- errno = EINVAL;
- return (-1);
- }
+ (*size && as == NULL))
+ return (EINVAL);
snl_init_writer(&h->ss, &nw);
hdr = snl_create_genl_msg_request(&nw, h->family_id,
diff --git a/sbin/pfctl/pfctl_radix.c b/sbin/pfctl/pfctl_radix.c
index 608c22141ae8..db6153941cca 100644
--- a/sbin/pfctl/pfctl_radix.c
+++ b/sbin/pfctl/pfctl_radix.c
@@ -194,7 +194,14 @@ int
pfr_get_astats(struct pfr_table *tbl, struct pfr_astats *addr, int *size,
int flags)
{
- return (pfctl_get_astats(pfh, tbl, addr, size, flags));
+ int ret;
+
+ ret = pfctl_get_astats(pfh, tbl, addr, size, flags);
+ if (ret) {
+ errno = ret;
+ return (-1);
+ }
+ return (0);
}
int
diff --git a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
index f01218bee5f8..8221bbac812f 100644
--- a/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
+++ b/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
@@ -1355,7 +1355,7 @@ pfa_table_addrs(u_int sidx, struct pfr_table *pt)
struct pfr_table tbl = { 0 };
struct pfr_astats *t = NULL;
struct pfa_entry *e;
- int i, numaddrs = 1, outnum;
+ int error, i, numaddrs = 1, outnum;
if (pt == NULL)
return (-1);
@@ -1373,9 +1373,9 @@ pfa_table_addrs(u_int sidx, struct pfr_table *pt)
}
outnum = numaddrs;
- if (pfctl_get_astats(pfh, &tbl, t, &outnum, 0) != 0) {
+ if ((error = pfctl_get_astats(pfh, &tbl, t, &outnum, 0)) != 0) {
syslog(LOG_ERR, "pfa_table_addrs(): ioctl() on %s: %s",
- pt->pfrt_name, strerror(errno));
+ pt->pfrt_name, strerror(error));
numaddrs = -1;
break;
}