changeset 2252:528ad6cc97bf

* src/ecos/support.c (cyg_netint): Don't handle events that don't have handlers registered. Fixes Bug 1000046, whereby an assertion or crash resulted from an ARP package arriving before network initialization was complete.
author jlarmour
date Wed, 19 Jul 2006 14:29:33 +0000
parents e711597543e5
children 84fb9d197d62
files packages/net/bsd_tcpip/current/ChangeLog packages/net/bsd_tcpip/current/src/ecos/support.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/packages/net/bsd_tcpip/current/ChangeLog
+++ b/packages/net/bsd_tcpip/current/ChangeLog
@@ -1,3 +1,10 @@
+2006-07-19  Philip Keller  <keller@metrolab.ch>
+
+	* src/ecos/support.c (cyg_netint): Don't handle events that don't
+	have handlers registered. Fixes Bug 1000046, whereby an assertion
+	or crash resulted from an ARP package arriving before network
+	initialization was complete.
+
 2006-06-14  Andy Jackson <andy@xylanta.com>
 
 	* cdl/freebsd_net.cdl, src/ecos/support.c, src/ecos/support.c:
--- a/packages/net/bsd_tcpip/current/src/ecos/support.c
+++ b/packages/net/bsd_tcpip/current/src/ecos/support.c
@@ -726,8 +726,8 @@ cyg_netint(cyg_addrword_t param)
         spl = splsoftnet(); // Prevent any overlapping "stack" processing
         for (lvl = NETISR_MIN;  lvl <= NETISR_MAX;  lvl++) {
             if (curisr & (1<<lvl)) {
-                CYG_ASSERT(_netisr_handlers[lvl] != 0, "unregistered netisr handler");
-                (*_netisr_handlers[lvl])();
+                if (NULL != _netisr_handlers[lvl])
+                    (*_netisr_handlers[lvl])();
             }
         }
         splx(spl);