reassign 82468 glibc
thanks

> The problem is just sockaddr_in6{} is smaller than what glibc-2.2 expects.
> This patch hide the problem.   Please try this instead.

This bug is problem in glibc. please apply this fix against glibc.

--- glibc-2.2.5/inet/getnameinfo.c      Tue Jan 30 00:23:05 2001
+++ glibc-2.2.5-fix/inet/getnameinfo.c  Sun Aug  4 01:15:42 2002
@@ -62,6 +62,13 @@
 # define min(x,y) (((x) > (y)) ? (y) : (x))
 #endif /* min */
 
+struct __sockaddr_in6_rfc2133
+  {
+      __SOCKADDR_COMMON (__sin6_);
+      in_port_t __sin6_port;
+      uint32_t __sin6_flowinfo;
+      struct in6_addr __sin6_addr;
+  };
 
 static char *
 internal_function
@@ -193,7 +200,7 @@
        return EAI_FAMILY;
       break;
     case AF_INET6:
-      if (addrlen < sizeof (struct sockaddr_in6))
+      if (addrlen < sizeof (struct __sockaddr_in6_rfc2133))
        return EAI_FAMILY;
       break;
     default:
@@ -298,7 +305,8 @@
 
                    c = inet_ntop (AF_INET6,
                                   (const void *) &sin6p->sin6_addr, host, 
hostlen);
-                   scopeid = sin6p->sin6_scope_id;
+                   scopeid = (addrlen >= sizeof(struct sockaddr_in6)) ? 
+                             sin6p->sin6_scope_id : 0;
                    if (scopeid != 0)
                      {
                        /* Buffer is >= IFNAMSIZ+1.  */

--yoshfuji


Reply via email to