*BSD News Article 79862


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.carno.net.au!harbinger.cc.monash.edu.au!nntp.coast.net!news.kei.com!news.mathworks.com!news.sgi.com!fido.asd.sgi.com!seal.engr.sgi.com!bitbug
From: bitbug@seal.engr.sgi.com (James Buster)
Newsgroups: comp.bugs.4bsd
Subject: Re: un-freed mbuf in ip_output
Date: 4 Oct 1996 01:23:55 GMT
Organization: Surf Software
Lines: 23
Message-ID: <531ovb$dnb@fido.asd.sgi.com>
References: <52srh5$hip@monaco.csl.rdc.toshiba.co.jp> <Dyq3DE.59@world.std.com>
NNTP-Posting-Host: seal.engr.sgi.com

In article <Dyq3DE.59@world.std.com>, Kurt Hackenberg <kh@world.std.com> wrote:
>jinmei@isl.rdc.toshiba.co.jp (JINMEI Tatuya) writes:
>
>>If we encounter some error in the ip_output function in ip_output.c of
>>Net/3, we go to bad: label at the end of the functin and free the
>>outgoing packet:
>
>>bad:
>>	m_freem(m0);
>>	goto done;
>
>>But sometimes m0 is not the entire outgoing packet.
>
>
>I believe m_freem() frees the whole mbuf list -- that is, the whole
>packet -- not just the first mbuf.  Go read m_freem().

m_freem() does in fact free the whole mbuf chain. This doesn't help you, as
extra mbuf in question is *prepended*, not appended, to the mbuf chain.
-- 
Planet Bog -- pools of toxic chemicals bubble under a choking atomsphere of
poisonous gases... but aside from that, it's not much like Earth.
	-- Calvin