aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if.c
diff options
context:
space:
mode:
authorQing Li <qingli@FreeBSD.org>2009-09-20 17:22:19 +0000
committerQing Li <qingli@FreeBSD.org>2009-09-20 17:22:19 +0000
commit46e7f9838b3e1b84962287470e171d649bf03a1c (patch)
treed14f4e404d947729255f91a310035de453657ff5 /sys/net/if.c
parenta05cb852372017a7980f7e89d3bbe14ac8ab88d3 (diff)
downloadsrc-46e7f9838b3e1b84962287470e171d649bf03a1c.tar.gz
src-46e7f9838b3e1b84962287470e171d649bf03a1c.zip
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
Notes
Notes: svn path=/head/; revision=197364
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 c0ff443d6dc1..55de666a6360 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)