2f9c32c833
Annotate a memory leak. When copying one multicast address list to another, IFAREF before IFAFREE to protect against using an ifaddr after (accidentally) freeing it. LIST_REMOVE() a multicast address from its old list before LIST_INSERT_HEAD() on its new list. Do not count on in6_delmulti() removing its multicast-record argument from the multicast address list that the record belongs to, because clearly that is not what it (always) does.