summaryrefslogtreecommitdiffstats
path: root/sys/net
diff options
context:
space:
mode:
Diffstat (limited to 'sys/net')
-rw-r--r--sys/net/rtsock.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c
index b6684c4..a1fbc0d 100644
--- a/sys/net/rtsock.c
+++ b/sys/net/rtsock.c
@@ -278,12 +278,12 @@ route_output(m, so)
flags may also be different; ifp may be specified
by ll sockaddr when protocol address is ambiguous */
if (ifpaddr && (ifa = ifa_ifwithnet(ifpaddr)) &&
- (ifp = ifa->ifa_ifp))
+ (ifp = ifa->ifa_ifp) && (ifaaddr || gate))
ifa = ifaof_ifpforaddr(ifaaddr ? ifaaddr : gate,
ifp);
else if ((ifaaddr && (ifa = ifa_ifwithaddr(ifaaddr))) ||
- (ifa = ifa_ifwithroute(rt->rt_flags,
- rt_key(rt), gate)))
+ (gate && (ifa = ifa_ifwithroute(rt->rt_flags,
+ rt_key(rt), gate))))
ifp = ifa->ifa_ifp;
if (ifa) {
register struct ifaddr *oifa = rt->rt_ifa;
OpenPOWER on IntegriCloud