--- rdate-1.4/rdate.c.inet6 2004-04-21 19:44:22.000000000 +0100 +++ rdate-1.4/rdate.c 2008-03-07 17:28:52.000000000 +0000 @@ -144,7 +144,6 @@ rdate(const char *hostname, time_t *retv break; } } - freeaddrinfo(res0); if (err < 0) { writeLog(1, "couldn't create socket: %s", strerror(errno)); return -1; @@ -160,6 +159,9 @@ rdate(const char *hostname, time_t *retv { writeLog(1, "couldn't connect to host %s: %s", hostname, strerror(errno)); close(fd); +#ifdef INET6 + freeaddrinfo(res0); +#endif return -1; } @@ -172,6 +174,9 @@ rdate(const char *hostname, time_t *retv else writeLog(1, "got EOF from time server"); close(fd); +#ifdef INET6 + freeaddrinfo(res0); +#endif return -1; } @@ -183,6 +188,9 @@ rdate(const char *hostname, time_t *retv #endif writeLog(1, "couldn't send UDP message to host %s: %s", hostname, strerror(errno)); close(fd); +#ifdef INET6 + freeaddrinfo(res0); +#endif return -1; } @@ -197,11 +205,17 @@ rdate(const char *hostname, time_t *retv else writeLog(1, "got EOF from time server"); close(fd); +#ifdef INET6 + freeaddrinfo(res0); +#endif return -1; } } close(fd); +#ifdef INET6 + freeaddrinfo(res0); +#endif /* See inetd's builtins.c for an explanation */ *retval = (time_t)(ntohl(*(uint32_t *)time_buf) - 2208988800UL);