Core dumps after HTTP requests. Bug fix in HTAnchor.c (cvs patche d versions).

Hi all,

This is my bug fix for the patched version of HTAnchor.c.
This also my bug fix for the standard version.

If you just use the standard version rather refer to my next mail.

First thank to libwww hackers who provide invaluable contributions 
to the libwww code base.

Thank InfoVista I can spend some time last week, testing HTTP requests 
with libwww.

As far I've understood HTAnchor's code, actually the adult_table 
shares the objects of its lists (object of type HTParentAnchor) 
with the tree of parents/childs anchors.

With such a data structure it's impossible to safely destroy it.

One way could be to use reference counters. 
But I believe this will not match the initial design when adult_table.
had been implements. I believe the design was to never clean adult_table
cause even if you swept all the web it can't grow infinitely (memory leaks 
comes from other bugs) and as it's shared by all requests it give better 
performances to keep unchanged.

However a little bug in HTAnchor_findAdress makes the structure wrong.
I believe that not the HTParentAnchor must be share, but only the address.
Such it becomes possible to safely call the HTAnchor_delete function and let
the adult_table unchanged.
Notes that one also must not HT_FREE(me->address) in 'delete_parent' 'cause
it's shared.

Here is attached diff output which can be applied to the patched version of
HTAnchor 
(the one which is on cvsweb).


Hope this help. 

Michel.



 <<diff_core_dump_cvs.txt>> 

Received on Monday, 23 April 2001 06:15:05 UTC