Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Jul 2009 06:00:57 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org
Subject:   svn commit: r195336 - in stable/7/sys: . contrib/pf netgraph
Message-ID:  <200907040600.n6460vaU000179@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Sat Jul  4 06:00:57 2009
New Revision: 195336
URL: http://svn.freebsd.org/changeset/base/195336

Log:
  MFC rev.195335:
  Fix infinite loop in ng_iface, that happens when packet passes out via
  two different ng interfaces sequentially due to tunnelling.
  
  PR:		kern/134557
  Submitted by:	Mikolaj Golub

Modified:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)
  stable/7/sys/netgraph/ng_iface.c

Modified: stable/7/sys/netgraph/ng_iface.c
==============================================================================
--- stable/7/sys/netgraph/ng_iface.c	Sat Jul  4 05:07:52 2009	(r195335)
+++ stable/7/sys/netgraph/ng_iface.c	Sat Jul  4 06:00:57 2009	(r195336)
@@ -365,7 +365,8 @@ ng_iface_output(struct ifnet *ifp, struc
 	}
 
 	/* Protect from deadly infinite recursion. */
-	while ((mtag = m_tag_locate(m, MTAG_NGIF, MTAG_NGIF_CALLED, NULL))) {
+	mtag = NULL;
+	while ((mtag = m_tag_locate(m, MTAG_NGIF, MTAG_NGIF_CALLED, mtag))) {
 		if (*(struct ifnet **)(mtag + 1) == ifp) {
 			log(LOG_NOTICE, "Loop detected on %s\n", ifp->if_xname);
 			m_freem(m);



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