Update.
authorUlrich Drepper <drepper@redhat.com>
Tue, 10 Jun 2003 07:45:18 +0000 (07:45 +0000)
committerUlrich Drepper <drepper@redhat.com>
Tue, 10 Jun 2003 07:45:18 +0000 (07:45 +0000)
2003-06-10  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/posix/getaddrinfo.c (getaddrinfo): Don't leak memory
from getifaddr calls.

ChangeLog
nptl/ChangeLog
nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
sysdeps/posix/getaddrinfo.c

index 793f47a..844f522 100644 (file)
--- 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
index c0b54e0..34bf944 100644 (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
index 411a05c..95f3aad 100644 (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
 
index 062d108..23f7122 100644 (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 ifaddrsifa = 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);