Missing locks when returning addresses from zone structure
Coverity has identified a number of place where we return pointers to addresses that are set while holding the zone lock. e.g. dns_zone_getsourceaddr4 et al. CID 468706, 468708, 468741, 468742, 468785, 468778. Pass a pointer and copy the value while the zone is locked.
Additionally the corresponding set routines all only return ISC_R_SUCCESS and could be made void.
Additionally dns_zone_getsourceaddr and dns_zone_getprimaryaddr while correctly locking the zone copy the value to a temporary isc_sockaddr_t structure which is then returned requiring a second copy of the value to the variable in the caller. Pass a pointer to hold the result instead.