Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 9 Nov 2008 00:49:36 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r184776 - user/kmacy/HEAD_fast_multi_xmit/sys/net
Message-ID:  <200811090049.mA90naJr026212@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Sun Nov  9 00:49:36 2008
New Revision: 184776
URL: http://svn.freebsd.org/changeset/base/184776

Log:
  validate rtentry before doing any other checks

Modified:
  user/kmacy/HEAD_fast_multi_xmit/sys/net/flowtable.c

Modified: user/kmacy/HEAD_fast_multi_xmit/sys/net/flowtable.c
==============================================================================
--- user/kmacy/HEAD_fast_multi_xmit/sys/net/flowtable.c	Sun Nov  9 00:38:11 2008	(r184775)
+++ user/kmacy/HEAD_fast_multi_xmit/sys/net/flowtable.c	Sun Nov  9 00:49:36 2008	(r184776)
@@ -599,8 +599,9 @@ static __inline int
 gw_valid(struct rtentry *rt)
 {
 	return ((rt->rt_flags & RTF_GATEWAY) == 0 ||
-	    ((rt->rt_flags & RTF_GATEWAY) && 
-		(rt->rt_gwroute->rt_flags & RTF_UP)));
+	    ((rt->rt_flags & RTF_GATEWAY)
+		&& (rt->rt_gwroute != NULL)
+		&& (rt->rt_gwroute->rt_flags & RTF_UP)));
 }
 
 
@@ -642,7 +643,8 @@ flowtable_lookup(struct flowtable *ft, s
 	FL_ENTRY_LOCK(ft, hash);
 	fle = FL_ENTRY(ft, hash);
 	rt = __DEVOLATILE(struct rtentry *, fle->f_rt);
-	if (fle->f_fhash == hash
+	if ((rt != NULL)
+	    && fle->f_fhash == hash
 	    && flowtable_key_equal(fle, key, flags)
 	    && (proto == fle->f_proto)
 	    && (rt->rt_flags & RTF_UP)



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