svn commit: r239173 - projects/pf/head/sys/contrib/pf/net

Gleb Smirnoff glebius at FreeBSD.org
Fri Aug 10 11:01:56 UTC 2012


Author: glebius
Date: Fri Aug 10 11:01:55 2012
New Revision: 239173
URL: http://svn.freebsd.org/changeset/base/239173

Log:
  Catch up with r238421 in pfsync. We need to initalize allocated keys.
  
  Reported by:	Ben Wilber <ben desync.com>

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Aug 10 09:04:02 2012	(r239172)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Fri Aug 10 11:01:55 2012	(r239173)
@@ -460,17 +460,23 @@ pfsync_state_import(struct pfsync_state 
 	if ((st = uma_zalloc(V_pf_state_z, M_NOWAIT | M_ZERO)) == NULL)
 		goto cleanup;
 
-	if ((skw = uma_zalloc(V_pf_state_key_z, M_NOWAIT)) == NULL)
+	if ((skw = uma_zalloc(V_pf_state_key_z, M_NOWAIT | M_ZERO)) == NULL)
 		goto cleanup;
 
+	TAILQ_INIT(&skw->states[PF_SK_WIRE]);
+	TAILQ_INIT(&skw->states[PF_SK_STACK]);
+
 	if (PF_ANEQ(&sp->key[PF_SK_WIRE].addr[0],
 	    &sp->key[PF_SK_STACK].addr[0], sp->af) ||
 	    PF_ANEQ(&sp->key[PF_SK_WIRE].addr[1],
 	    &sp->key[PF_SK_STACK].addr[1], sp->af) ||
 	    sp->key[PF_SK_WIRE].port[0] != sp->key[PF_SK_STACK].port[0] ||
 	    sp->key[PF_SK_WIRE].port[1] != sp->key[PF_SK_STACK].port[1]) {
-		if ((sks = uma_zalloc(V_pf_state_key_z, M_NOWAIT)) == NULL)
+		sks = uma_zalloc(V_pf_state_key_z, M_NOWAIT | M_ZERO);
+		if (sks == NULL)
 			goto cleanup;
+		TAILQ_INIT(&sks->states[PF_SK_WIRE]);
+		TAILQ_INIT(&sks->states[PF_SK_STACK]);
 	} else
 		sks = skw;
 


More information about the svn-src-projects mailing list