diff options
author | Mateusz Guzik <mjg@FreeBSD.org> | 2021-07-02 07:28:48 +0000 |
---|---|---|
committer | Mateusz Guzik <mjg@FreeBSD.org> | 2021-07-02 08:30:22 +0000 |
commit | 48d5b86364fa8e86318805d0078ccf9066e94ae8 (patch) | |
tree | 860275455a8e34827a0873ebf48c8a27e33d0301 | |
parent | 904a08f3427c8ae42b667c1f5dc3e441b48a8e84 (diff) | |
download | src-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.c | 5 |
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); |