util: pa_get_fqdn: always free addrinfo

Also fix the return error code check of getaddrinfo call

Coverity ID: 1323587
This commit is contained in:
Felipe Sateler 2015-09-11 20:15:20 -03:00 committed by Tanu Kaskinen
parent 195960859c
commit b42575e183

View file

@ -297,7 +297,7 @@ char *pa_path_get_filename(const char *p) {
char *pa_get_fqdn(char *s, size_t l) {
char hn[256];
#ifdef HAVE_GETADDRINFO
struct addrinfo *a, hints;
struct addrinfo *a = NULL, hints;
#endif
pa_assert(s);
@ -311,9 +311,14 @@ char *pa_get_fqdn(char *s, size_t l) {
hints.ai_family = AF_UNSPEC;
hints.ai_flags = AI_CANONNAME;
if (getaddrinfo(hn, NULL, &hints, &a) < 0 || !a || !a->ai_canonname || !*a->ai_canonname)
if (getaddrinfo(hn, NULL, &hints, &a))
return pa_strlcpy(s, hn, l);
if (!a->ai_canonname || !*a->ai_canonname) {
freeaddrinfo(a);
return pa_strlcpy(s, hn, l);
}
pa_strlcpy(s, a->ai_canonname, l);
freeaddrinfo(a);
return s;