From 5ed26c8f51820fc71578a9f1abc4fa06760f89d3 Mon Sep 17 00:00:00 2001 From: pb Date: Fri, 25 Jun 1999 13:43:30 +0000 Subject: Never return the root node itself from rn_match(); return NULL instead. This caused a panic in rtfreee() called with a root node from the routing socket code (when processing a RTM_GET message looking for the default route while there is none). Since no existing code seems to have any use getting the root node from rn_match(), it seems cleaner never to return it rather than check for this condition at the caller's. PR: kern/12265 --- sys/net/radix.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'sys/net') diff --git a/sys/net/radix.c b/sys/net/radix.c index bca5bdd..30608d8 100644 --- a/sys/net/radix.c +++ b/sys/net/radix.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)radix.c 8.4 (Berkeley) 11/2/94 - * $Id: radix.c,v 1.16 1999/04/26 09:05:31 peter Exp $ + * $Id: radix.c,v 1.17 1999/04/29 03:22:16 luoqi Exp $ */ /* @@ -260,8 +260,11 @@ rn_match(v_arg, head) /* * This extra grot is in case we are explicitly asked * to look up the default. Ugh! + * + * Never return the root node itself, it seems to cause a + * lot of confusion. */ - if ((t->rn_flags & RNF_ROOT) && t->rn_dupedkey) + if (t->rn_flags & RNF_ROOT) t = t->rn_dupedkey; return t; on1: -- cgit v1.1