diff -ru /cvs/netinet6.old/nd6.c /usr/src/sys/netinet6/nd6.c --- /cvs/netinet6.old/nd6.c Fri Mar 9 02:41:46 2001 +++ /usr/src/sys/netinet6/nd6.c Fri Mar 9 02:45:31 2001 @@ -970,6 +970,7 @@ return(1); break; default: + m_freem(m); return(0); } } @@ -1026,6 +1027,7 @@ ln, 0); } } + /* do not free mbuf here, it is queued into llinfo_nd6 */ return(0); } #endif /* OLDIP6OUTPUT */ @@ -1981,6 +1983,7 @@ *desten = 0; return(1); default: + m_freem(m); return(0); } } @@ -1988,12 +1991,14 @@ if (rt == NULL || rt->rt_gateway->sa_family != AF_LINK) { printf("nd6_storelladdr: something odd happens\n"); + m_freem(m); return(0); } sdl = SDL(rt->rt_gateway); if (sdl->sdl_alen == 0) { /* this should be impossible, but we bark here for debugging */ printf("nd6_storelladdr: sdl_alen == 0\n"); + m_freem(m); return(0); }