DragonFly BSD
DragonFly kernel List (threaded) for 2005-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: kernel: mfree: m->m_nextpkt != NULL


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 20 Sep 2005 08:40:23 -0700 (PDT)

:  1364:	ip_freef(struct ipq *fp)
:  1365:	{
:  1366:		struct mbuf *q;
:  1367:	   
:  1368:		while (fp->ipq_frags) {
:  1369:			q = fp->ipq_frags;
:  1370:			fp->ipq_frags = q->m_nextpkt;
:+			q->m_nextpkt = NULL;
:  1371:			m_freem(q);
:  1372:		}
:  1373:		remque(fp);
:  1374:		mpipe_free(&ipq_mpipe, fp);
:  1375:		nipq--;
:  1376:	}
:
:m_freem() frees an mbuf chain.  It calls m_free() to free each mbuf.
:So, I think q->m_nextpkt should be cleared before calling m_freem().
:If we add the line indicated by the '+' sign above, I think this
:problem will be fixed.
:
:I will try this modificatioin on Thursday.
:
:Regards,
:Noritoshi Demizu

    That looks right.  Nice catch guys!  Go ahead and commit any time. 

					-Matt
					Matthew Dillon 
					<dillon@xxxxxxxxxxxxx>



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]