ehlo,
We should call freeaddrinfo only in situation if getaddrinfo succeeds. It is not specified in RFC2553 the behaviour of calling freeaddrinfo with the NULL argument. It is more portable to do not rely on undocumented behaviour of glibc.
http://www.ietf.org/rfc/rfc2553.txt [Page 28]
simple patch is attached.
LS