The attached four patches are very similar. In some if the parsing functions (ns, aaaa, a, ptr), we were not freeing rr_name in failure cases after it was allocated.
There was no leak on success cases, only potentially on failures.