svn commit: r257710 - head/sys/netpfil/pf
Gleb Smirnoff
glebius at FreeBSD.org
Tue Nov 5 16:54:26 UTC 2013
Author: glebius
Date: Tue Nov 5 16:54:25 2013
New Revision: 257710
URL: http://svnweb.freebsd.org/changeset/base/257710
Log:
Fix fallout from r257223. Since pf_test_state_icmp() can call
pf_icmp_state_lookup() twice, we need to unlock previously found state.
Reported & tested by: gavin
Modified:
head/sys/netpfil/pf/pf.c
Modified: head/sys/netpfil/pf/pf.c
==============================================================================
--- head/sys/netpfil/pf/pf.c Tue Nov 5 15:57:24 2013 (r257709)
+++ head/sys/netpfil/pf/pf.c Tue Nov 5 16:54:25 2013 (r257710)
@@ -4607,6 +4607,8 @@ pf_test_state_icmp(struct pf_state **sta
if (ret >= 0) {
if (ret == PF_DROP && pd->af == AF_INET6 &&
icmp_dir == PF_OUT) {
+ if (*state)
+ PF_STATE_UNLOCK(*state);
ret = pf_icmp_state_lookup(&key, pd, state, m,
direction, kif, virtual_id, virtual_type,
icmp_dir, &iidx, multi);
@@ -5058,6 +5060,8 @@ pf_test_state_icmp(struct pf_state **sta
if (ret >= 0) {
if (ret == PF_DROP && pd->af == AF_INET6 &&
icmp_dir == PF_OUT) {
+ if (*state)
+ PF_STATE_UNLOCK(*state);
ret = pf_icmp_state_lookup(&key, pd,
state, m, direction, kif,
virtual_id, virtual_type,
More information about the svn-src-head
mailing list