* sunrpc/get_myaddr.c (get_myaddress): Account for interfaces without
authordrepper <drepper>
Thu, 30 Sep 2004 01:56:53 +0000 (01:56 +0000)
committerdrepper <drepper>
Thu, 30 Sep 2004 01:56:53 +0000 (01:56 +0000)
assigned addresses.
* sunrpc/pmap_clnt.c (__get_myaddress): Likewise.
* sunrpc/pmap_rmt.c (getbroadcastnets): Likewise.
* sunrpc/clnt_udp.c (is_network_up): Likewise.

sunrpc/clnt_udp.c
sunrpc/get_myaddr.c
sunrpc/pmap_clnt.c
sunrpc/pmap_rmt.c

index 1836ff3..f3787dd 100644 (file)
@@ -244,6 +244,7 @@ is_network_up (int sock)
   while (run != NULL)
     {
       if ((run->ifa_flags & IFF_UP) != 0
+         && run->ifa_addr != NULL
          && run->ifa_addr->sa_family == AF_INET)
        break;
 
index c0beee9..4449c53 100644 (file)
@@ -76,7 +76,9 @@ get_myaddress (struct sockaddr_in *addr)
   run = ifa;
   while (run != NULL)
     {
-      if ((run->ifa_flags & IFF_UP) && run->ifa_addr->sa_family == AF_INET
+      if ((run->ifa_flags & IFF_UP)
+         && run->ifa_addr != NULL
+         && run->ifa_addr->sa_family == AF_INET
          && (!(run->ifa_flags & IFF_LOOPBACK)
              || (loopback == 1 && (run->ifa_flags & IFF_LOOPBACK))))
        {
index aa5740c..3e42960 100644 (file)
@@ -70,7 +70,9 @@ __get_myaddress (struct sockaddr_in *addr)
   run = ifa;
   while (run != NULL)
     {
-      if ((run->ifa_flags & IFF_UP) && run->ifa_addr->sa_family == AF_INET
+      if ((run->ifa_flags & IFF_UP)
+         && run->ifa_addr != NULL
+         && run->ifa_addr->sa_family == AF_INET
          && ((run->ifa_flags & IFF_LOOPBACK) || loopback == 0))
        {
          *addr = *((struct sockaddr_in *) run->ifa_addr);
index 4ff707a..644d503 100644 (file)
@@ -191,6 +191,7 @@ getbroadcastnets (struct in_addr *addrs, int naddrs)
     {
       if ((run->ifa_flags & IFF_BROADCAST) != 0
          && (run->ifa_flags & IFF_UP) != 0
+         && run->ifa_addr != NULL
          && run->ifa_addr->sa_family == AF_INET)
        /* Copy the broadcast address.  */
        addrs[i++] = ((struct sockaddr_in *) run->ifa_broadaddr)->sin_addr;