From 6d8eecb6b6441ee3fed2e5cebe7b8686f2e51cef Mon Sep 17 00:00:00 2001 From: Matthew Dillon Date: Fri, 14 Nov 2003 00:45:20 +0000 Subject: [PATCH] MT_TAG mbufs are terrible hacks and cannot be freed. Skip any MT_TAGs before freeing mbufs sent to a netisr without a handler. --- sys/net/netisr.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sys/net/netisr.c b/sys/net/netisr.c index 1a2648de57..8bb41bb36a 100644 --- a/sys/net/netisr.c +++ b/sys/net/netisr.c @@ -3,7 +3,7 @@ * Copyright (c) 2003 Jonathan Lemon * Copyright (c) 2003 Matthew Dillon * - * $DragonFly: src/sys/net/netisr.c,v 1.4 2003/11/10 05:00:50 dillon Exp $ + * $DragonFly: src/sys/net/netisr.c,v 1.5 2003/11/14 00:45:20 dillon Exp $ */ #include @@ -57,10 +57,14 @@ netmsg_service_loop(void *arg) struct mbuf *m = msg->nm_packet; netisr_fn_t handler = msg->nm_handler; - if (handler) + if (handler) { handler(m); - else if (m) + } else if (m) { + while (m->m_type == MT_TAG) + m = m->m_next; + KKASSERT(m != NULL); m_freem(m); + } free(msg, M_TEMP); } } -- 2.41.0