bugfix from karels & husemann in ifwithdstaddr()
authorKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Sat, 2 Jul 1994 03:56:09 +0000 (19:56 -0800)
committerKeith Sklower <sklower@ucbvax.Berkeley.EDU>
Sat, 2 Jul 1994 03:56:09 +0000 (19:56 -0800)
SCCS-vsn: sys/net/if.c 8.4

usr/src/sys/net/if.c

index 9ac3f75..16e0f06 100644 (file)
@@ -4,7 +4,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)if.c        8.3 (Berkeley) %G%
+ *     @(#)if.c        8.4 (Berkeley) %G%
  */
 
 #include <sys/param.h>
  */
 
 #include <sys/param.h>
@@ -172,7 +172,8 @@ ifa_ifwithdstaddr(addr)
        for (ifp = ifnet; ifp; ifp = ifp->if_next) 
            if (ifp->if_flags & IFF_POINTOPOINT)
                for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) {
        for (ifp = ifnet; ifp; ifp = ifp->if_next) 
            if (ifp->if_flags & IFF_POINTOPOINT)
                for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) {
-                       if (ifa->ifa_addr->sa_family != addr->sa_family)
+                       if (ifa->ifa_addr->sa_family != addr->sa_family ||
+                           ifa->ifa_dstaddr == NULL)
                                continue;
                        if (equal(addr, ifa->ifa_dstaddr))
                                return (ifa);
                                continue;
                        if (equal(addr, ifa->ifa_dstaddr))
                                return (ifa);