diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nptl/ChangeLog | 6 | ||||
-rw-r--r-- | nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S | 7 | ||||
-rw-r--r-- | sysdeps/posix/getaddrinfo.c | 11 |
4 files changed, 18 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog index 793f47af88..844f522831 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 diff --git a/nptl/ChangeLog b/nptl/ChangeLog index c0b54e0cdd..34bf9446e4 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -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 diff --git a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S index 411a05c9e0..95f3aad1d8 100644 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S @@ -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 diff --git a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c index 062d10849d..23f7122ae1 100644 --- a/sysdeps/posix/getaddrinfo.c +++ b/sysdeps/posix/getaddrinfo.c @@ -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); |