The new_dn_string passed into this function is malloc'd. It must be freed before we reassign the value.