<html><body><span style="font-family:Verdana; color:#000000; font-size:10pt;"><div>When assigning TSIG parameters to ldns_resolver using ldns_resolver_tsig_keyname, ldns_resolver_tsig_algorithm and ldns_resolver_tsig_keydata, those functions merely set the pointer to the pointer value passed, they do not actually copy the data. However, when ldns_resolver_deep_free is called, it attempts to free res->_tsig_keyname.<br><br>First, ldns_resolver_deep_free probably should not attempt to free these, unless the set functions are modified to make copies instead of just storing the pointer.<br><br>Second, and possibly more significant, ldns_resolver_deep_free is inconsistent in that it only attempts to free one of the three values, but not the others. For someone who *does* expect the values to be freed, this would result in a memory leak.<br><br>Michael Sheldon</div><div><br></div></span></body></html>