Author: bz
Date: Wed Mar  2 17:13:07 2011
New Revision: 219184
URL: http://svn.freebsd.org/changeset/base/219184

Log:
  Prevent crashes from a race when (cloned) interfaces go away.
  
  PR:           bin/152143
  Submitted by: Przemyslaw Frasunek (przemyslaw frasunek.com)
  Tested by:    Przemyslaw Frasunek (przemyslaw frasunek.com)
  MFC after:    1 week

Modified:
  head/usr.sbin/rtadvd/rtadvd.c

Modified: head/usr.sbin/rtadvd/rtadvd.c
==============================================================================
--- head/usr.sbin/rtadvd/rtadvd.c       Wed Mar  2 16:16:09 2011        
(r219183)
+++ head/usr.sbin/rtadvd/rtadvd.c       Wed Mar  2 17:13:07 2011        
(r219184)
@@ -667,14 +667,16 @@ rtadvd_input()
        }
 
        /*
-        * If we happen to receive data on an interface which is now down,
-        * just discard the data.
+        * If we happen to receive data on an interface which is now gone
+        * or down, just discard the data.
         */
-       if ((iflist[pi->ipi6_ifindex]->ifm_flags & IFF_UP) == 0) {
+       if (iflist[pi->ipi6_ifindex] == NULL ||
+           (iflist[pi->ipi6_ifindex]->ifm_flags & IFF_UP) == 0) {
                syslog(LOG_INFO,
                       "<%s> received data on a disabled interface (%s)",
                       __func__,
-                      if_indextoname(pi->ipi6_ifindex, ifnamebuf));
+                      (iflist[pi->ipi6_ifindex] == NULL) ? "[gone]" :
+                           if_indextoname(pi->ipi6_ifindex, ifnamebuf));
                return;
        }
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to