Re: pics parser memory leak!

"Eric Prud'hommeaux" <[email protected]>
Newsgroups gmane.comp.lib.libwww
Message-ID <[email protected]>



On Tue, Mar 25, 2003 at 11:26:17AM -0800, Tokushige, Darren wrote:
> found your email address on the w3c website...hope you are the right
> person...
>  
> found a memory leak in the c-based pics parser....
>
> in the file CSLabel.c:
> HTList_removeLastObject() is called in various places to free
> dynamically allocated memory from link lists.  this function is
> called in a loop designed to free the entire list.  however if you
> look at the implementation of htlist, you will see that when the
> list is created, the head node is allocated.  this node can never be
> freed using HTList_removeLastObject().
>
> to fix the leak, after each loop that calls
> HTList_removeLastObject(), you need to free that head node by
> calling HTList_delete(me->???) where ??? is the list you are trying
> to delete.  i believe there are 10 instances of this call in
> CSLabel.c.

Would you mind submitting a patch or a replacement CSLabel.c ? I
believe you are more likely to repair this accurately.

> why htlist allocates this empty head node is beyond me.  to be
> honest i think the fix should really be completed in htlist, but
> since so many other programs rely on this, i fixed it in CSLabel.c.

yeah, that would be scary to update.
I guess the nice thing is that the head node can be a subclass of a
list element if you want to keep more data about the list, like
indexes or that sort of thing.

> anyways, just wanted to pass on the info...
> darren.

Indeed. Thank you kindly.
-- 
-eric

office: +1.617.258.5741 NE43-344, MIT, Cambridge, MA 02144 USA
cell:   +1.857.222.5741

([email protected])
Feel free to forward this message to any list for any purpose other than
email address distribution.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.