2003-06-10  Ulrich Drepper  <drepper@redhat.com>

	* sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't leak memory
	from getifaddr calls.
This commit is contained in:
Ulrich Drepper 2003-06-10 07:45:18 +00:00
parent 54c924656e
commit 06120d793a
4 changed files with 18 additions and 11 deletions

View File

@ -1,3 +1,8 @@
2003-06-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't leak memory
from getifaddr calls.
2003-06-09 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/kernel-features.h

View File

@ -1,3 +1,9 @@
2003-06-10 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
(__pthread_cond_signal): Remove incorrect second addition for
cond_lock!=0.
2003-06-09 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S

View File

@ -116,12 +116,7 @@ __pthread_cond_signal:
jmp 2b
/* Unlock in loop requires wakeup. */
5:
#if cond_lock == 0
movl %edi, %eax
#else
leal cond_lock(%edi), %eax
#endif
5: movl %edi, %eax
call __lll_mutex_unlock_wake
jmp 6b

View File

@ -930,7 +930,7 @@ getaddrinfo (const char *name, const char *service,
XXX We are using getifaddrs here which is more costly than
it is really necessary. Once things are stable we will have
a special function which performs the task with less overhead. */
struct ifaddrs* ifa = NULL;
struct ifaddrs *ifa = NULL;
if (getifaddrs (&ifa) != 0)
/* Cannot get the interface list, very bad. */
@ -939,14 +939,15 @@ getaddrinfo (const char *name, const char *service,
bool seen_ipv4 = false;
bool seen_ipv6 = false;
while (ifa != NULL)
struct ifaddrs *runp = ifa;
while (runp != NULL)
{
if (ifa->ifa_addr->sa_family == PF_INET)
if (runp->ifa_addr->sa_family == PF_INET)
seen_ipv4 = true;
else if (ifa->ifa_addr->sa_family == PF_INET6)
else if (runp->ifa_addr->sa_family == PF_INET6)
seen_ipv6 = true;
ifa = ifa->ifa_next;
runp = runp->ifa_next;
}
(void) freeifaddrs (ifa);