Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Aug 2014 08:42:17 +0000 (UTC)
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r269966 - projects/ipfw/sys/netpfil/ipfw
Message-ID:  <201408140842.s7E8gHnE065971@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: melifaro
Date: Thu Aug 14 08:42:16 2014
New Revision: 269966
URL: http://svnweb.freebsd.org/changeset/base/269966

Log:
  Fix crash in case of iflist request on non-initialized tracker.

Modified:
  projects/ipfw/sys/netpfil/ipfw/ip_fw_iface.c

Modified: projects/ipfw/sys/netpfil/ipfw/ip_fw_iface.c
==============================================================================
--- projects/ipfw/sys/netpfil/ipfw/ip_fw_iface.c	Thu Aug 14 08:21:22 2014	(r269965)
+++ projects/ipfw/sys/netpfil/ipfw/ip_fw_iface.c	Thu Aug 14 08:42:16 2014	(r269966)
@@ -489,6 +489,7 @@ export_iface_internal(struct namedobj_in
 int
 ipfw_list_ifaces(struct ip_fw_chain *ch, struct sockopt_data *sd)
 {
+	struct namedobj_instance *ii;
 	struct _ipfw_obj_lheader *olh;
 	struct dump_iface_args da;
 	uint32_t count, size;
@@ -500,7 +501,11 @@ ipfw_list_ifaces(struct ip_fw_chain *ch,
 		return (EINVAL);
 
 	IPFW_UH_RLOCK(ch);
-	count = ipfw_objhash_count(CHAIN_TO_II(ch));
+	ii = CHAIN_TO_II(ch);
+	if (ii != NULL)
+		count = ipfw_objhash_count(ii);
+	else
+		count = 0;
 	size = count * sizeof(ipfw_iface_info) + sizeof(ipfw_obj_lheader);
 
 	/* Fill in header regadless of buffer size */
@@ -517,10 +522,10 @@ ipfw_list_ifaces(struct ip_fw_chain *ch,
 	da.ch = ch;
 	da.sd = sd;
 
-	ipfw_objhash_foreach(CHAIN_TO_II(ch), export_iface_internal, &da);
+	if (ii != NULL)
+		ipfw_objhash_foreach(ii, export_iface_internal, &da);
 	IPFW_UH_RUNLOCK(ch);
 
 	return (0);
 }
 
-



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201408140842.s7E8gHnE065971>