bug in HTDns.c

Hi,

there is some sort of bug in HTDns.c. If a DNS enrty in the DNS cache is
timed out, the lib frees the DNS enty and allocated a new one. If another
HTHost object is still using that DNS entry or updating its weights with
HTDNS_updateWeigths(), it crashes because the address points to is invalid.
It is very difficult to reproduce that crash because of the piplelining
function and the timout value. However, I'm currently working on some
changes that safely will allow to switch between pipeling and
non-pipelining. Thus, it becomes more important fixing that bug.
My solution included in the attached diff file clears an exsting DNS entry
and stores the new values within the same structure. Thus, the address
stored in the host object will still be the same and further access will not
fail.

Regards,

Jens


 <<diff.txt>> 

Received on Sunday, 25 March 2001 16:59:12 UTC