diff options
author | qingli <qingli@FreeBSD.org> | 2009-09-20 17:22:19 +0000 |
---|---|---|
committer | qingli <qingli@FreeBSD.org> | 2009-09-20 17:22:19 +0000 |
commit | 85d603eeff5eebd37d7d09d87089948450a17b92 (patch) | |
tree | d14f4e404d947729255f91a310035de453657ff5 /sys/net/if.c | |
parent | ad2ee88840fecf6670c5b625e8b5a2bb8c67204c (diff) | |
download | FreeBSD-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.c | 4 |
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) |