Unit Tests Skipped
sock_in is a confusing name for struct addrinfo. How about just "ai" or "src_ai"?
Just before finish(), sock_in (or "ai" or "src_ai") should be safe to free.
if (source) freeaddrinfo(sock_in);
Data structure which is pointed by whereto should be freed here.