aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2021-07-02 07:28:48 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2021-07-02 08:30:22 +0000
commit48d5b86364fa8e86318805d0078ccf9066e94ae8 (patch)
tree860275455a8e34827a0873ebf48c8a27e33d0301
parent904a08f3427c8ae42b667c1f5dc3e441b48a8e84 (diff)
downloadsrc-48d5b86364fa8e86318805d0078ccf9066e94ae8.tar.gz
src-48d5b86364fa8e86318805d0078ccf9066e94ae8.zip
pf: make DIOCGETSTATESNV iterations killable
Reviewed by: kp Sponsored by: Rubicon Communications, LLC ("Netgate")
-rw-r--r--sys/netpfil/pf/pf_ioctl.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sys/netpfil/pf/pf_ioctl.c b/sys/netpfil/pf/pf_ioctl.c
index 928e4a1259cc..a802780277aa 100644
--- a/sys/netpfil/pf/pf_ioctl.c
+++ b/sys/netpfil/pf/pf_ioctl.c
@@ -5059,6 +5059,11 @@ pf_getstates(struct pfioc_nv *nv)
if (s->timeout == PFTM_UNLINKED)
continue;
+ if (SIGPENDING(curthread)) {
+ PF_HASHROW_UNLOCK(ih);
+ ERROUT(EINTR);
+ }
+
nvls = pf_state_to_nvstate(s);
if (nvls == NULL) {
PF_HASHROW_UNLOCK(ih);