From 5de558219a10a51c05dea62a77cf834585895a55 Mon Sep 17 00:00:00 2001 From: Gleb Smirnoff Date: Tue, 27 Mar 2007 19:36:12 +0000 Subject: Fix regression in rev. 1.140. Reported by: Yuriy Tsibizov , bsam --- sys/net/rtsock.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'sys/net/rtsock.c') diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 83947865faa6..82bc719d2b0f 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -514,7 +514,9 @@ route_output(struct mbuf *m, struct socket *so) senderr(error); RT_LOCK(rt); } - if (info.rti_ifa != rt->rt_ifa && rt->rt_ifa != NULL && + if (info.rti_ifa != NULL && + info.rti_ifa != rt->rt_ifa && + rt->rt_ifa != NULL && rt->rt_ifa->ifa_rtrequest != NULL) { rt->rt_ifa->ifa_rtrequest(RTM_DELETE, rt, &info); @@ -528,12 +530,11 @@ route_output(struct mbuf *m, struct socket *so) } rt->rt_flags |= RTF_GATEWAY; } - if (info.rti_ifa != rt->rt_ifa) { + if (info.rti_ifa != NULL && + info.rti_ifa != rt->rt_ifa) { + IFAREF(info.rti_ifa); rt->rt_ifa = info.rti_ifa; - if (info.rti_ifa != NULL) { - IFAREF(info.rti_ifa); - rt->rt_ifp = info.rti_ifp; - } + rt->rt_ifp = info.rti_ifp; } /* Allow some flags to be toggled on change. */ if (rtm->rtm_fmask & RTF_FMASK) -- cgit v1.2.3