svn commit: r219184 - head/usr.sbin/rtadvd
Bjoern A. Zeeb
bz at FreeBSD.org
Wed Mar 2 17:13:07 UTC 2011
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;
}
More information about the svn-src-head
mailing list