summaryrefslogtreecommitdiffstats
path: root/sys/net/if.c
diff options
context:
space:
mode:
authorqingli <qingli@FreeBSD.org>2009-09-20 17:22:19 +0000
committerqingli <qingli@FreeBSD.org>2009-09-20 17:22:19 +0000
commit85d603eeff5eebd37d7d09d87089948450a17b92 (patch)
treed14f4e404d947729255f91a310035de453657ff5 /sys/net/if.c
parentad2ee88840fecf6670c5b625e8b5a2bb8c67204c (diff)
downloadFreeBSD-src-85d603eeff5eebd37d7d09d87089948450a17b92.zip
FreeBSD-src-85d603eeff5eebd37d7d09d87089948450a17b92.tar.gz
A wrong variable is used when setting up the interface
address route, which broke source address selection in some code paths. Submitted by: noted by bz Reviewed by: hrs MFC after: immediately
Diffstat (limited to 'sys/net/if.c')
-rw-r--r--sys/net/if.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index c0ff443..55de666 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1432,9 +1432,9 @@ ifa_add_loopback_route(struct ifaddr *ifa, struct sockaddr *ia)
if (error == 0 && rt != NULL) {
RT_LOCK(rt);
((struct sockaddr_dl *)rt->rt_gateway)->sdl_type =
- rt->rt_ifp->if_type;
+ ifa->ifa_ifp->if_type;
((struct sockaddr_dl *)rt->rt_gateway)->sdl_index =
- rt->rt_ifp->if_index;
+ ifa->ifa_ifp->if_index;
RT_REMREF(rt);
RT_UNLOCK(rt);
} else if (error != 0)
OpenPOWER on IntegriCloud