Fix a double free in the destroy path triggered when a second process, in my case dhclient(8), races with ifconfig(8) to free the descriptors of the joined multicast groups.
Fix a double free in the destroy path triggered when a second process,
in my case dhclient(8), races with ifconfig(8) to free the descriptors
of the joined multicast groups.

While here reduce the difference with carp(4).

ok dms@

orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars,orumin/openbsd-efivars