svn commit: r282081 - head/sys/netpfil/ipfw

Alexander V. Chernikov melifaro at FreeBSD.org
Mon Apr 27 09:16:23 UTC 2015


Author: melifaro
Date: Mon Apr 27 09:16:22 2015
New Revision: 282081
URL: https://svnweb.freebsd.org/changeset/base/282081

Log:
  Use free_nat_instance() for nat instance deletion.
  
  Sponsored by:	Yandex LLC

Modified:
  head/sys/netpfil/ipfw/ip_fw_nat.c

Modified: head/sys/netpfil/ipfw/ip_fw_nat.c
==============================================================================
--- head/sys/netpfil/ipfw/ip_fw_nat.c	Mon Apr 27 09:15:36 2015	(r282080)
+++ head/sys/netpfil/ipfw/ip_fw_nat.c	Mon Apr 27 09:16:22 2015	(r282081)
@@ -265,6 +265,16 @@ add_redir_spool_cfg(char *buf, struct cf
 	return (0);
 }
 
+static void
+free_nat_instance(struct cfg_nat *ptr)
+{
+
+	del_redir_spool_cfg(ptr, &ptr->redir_chain);
+	LibAliasUninit(ptr->lib);
+	free(ptr, M_IPFW);
+}
+
+
 /*
  * ipfw_nat - perform mbuf header translation.
  *
@@ -538,7 +548,7 @@ nat44_config(struct ip_fw_chain *chain, 
 	IPFW_UH_WUNLOCK(chain);
 
 	if (tcfg != NULL)
-		free(tcfg, M_IPFW);
+		free_nat_instance(ptr);
 }
 
 /*
@@ -628,9 +638,7 @@ nat44_destroy(struct ip_fw_chain *chain,
 	IPFW_WUNLOCK(chain);
 	IPFW_UH_WUNLOCK(chain);
 
-	del_redir_spool_cfg(ptr, &ptr->redir_chain);
-	LibAliasUninit(ptr->lib);
-	free(ptr, M_IPFW);
+	free_nat_instance(ptr);
 
 	return (0);
 }
@@ -996,9 +1004,7 @@ ipfw_nat_del(struct sockopt *sopt)
 	flush_nat_ptrs(chain, i);
 	IPFW_WUNLOCK(chain);
 	IPFW_UH_WUNLOCK(chain);
-	del_redir_spool_cfg(ptr, &ptr->redir_chain);
-	LibAliasUninit(ptr->lib);
-	free(ptr, M_IPFW);
+	free_nat_instance(ptr);
 	return (0);
 }
 
@@ -1141,9 +1147,7 @@ vnet_ipfw_nat_uninit(const void *arg __u
 	IPFW_WLOCK(chain);
 	LIST_FOREACH_SAFE(ptr, &chain->nat, _next, ptr_temp) {
 		LIST_REMOVE(ptr, _next);
-		del_redir_spool_cfg(ptr, &ptr->redir_chain);
-		LibAliasUninit(ptr->lib);
-		free(ptr, M_IPFW);
+		free_nat_instance(ptr);
 	}
 	flush_nat_ptrs(chain, -1 /* flush all */);
 	V_ipfw_nat_ready = 0;


More information about the svn-src-all mailing list