patches/uClibc/0.9.30/150-getaddrinfo-segfault-ipv6-and-ipv4.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Aug 02 18:26:53 2011 +0200 (2011-08-02)
changeset 2592 4908eb2b6f17
permissions -rw-r--r--
scripts/functions: cvs retrieval first tries the mirror for tarballs

The cvs download helper looks for the local tarballs dir to see if it
can find a pre-downloaded tarball, and if it does not find it, does
the actual fetch to upstream via cvs.

In the process, it does not even try to get a tarball from the local
mirror, which can be useful if the mirror has been pre-populated
manually (or with a previously downloaded tree).

Fake a tarball get with the standard tarball-download helper, but
without specifying any upstream URL, which makes the helper directly
try the LAN mirror.

Of course, if no mirror is specified, no URL wil be available, and
the standard cvs retrieval will kick in.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
     1 From: Tomoyoshi ASANO <asa@lineo.co.jp>
     2 Message ID: <20081208073522.0AEF.22C34B8C@lineo.co.jp>
     3 
     4 Hello,
     5 
     6 I have SEGV at busybox's telnet with uClibc-0.9.30.
     7 It seem the current uClibc-trunk has the same problem.
     8 
     9 Thanks,
    10 -- Tom
    11 
    12 diff -ru uClibc-0.9.30.orig/libc/inet/getaddrinfo.c uClibc-0.9.30/libc/inet/getaddrinfo.c
    13 --- uClibc-0.9.30.orig/libc/inet/getaddrinfo.c	2008-10-28 17:25:10.000000000 +0100
    14 +++ uClibc-0.9.30/libc/inet/getaddrinfo.c	2009-02-26 14:20:06.000000000 +0100
    15 @@ -186,7 +186,7 @@
    16  			return seen;
    17  		}
    18  
    19 -		for (runp = ifa; runp != NULL; runp = runp->ifa_next)
    20 +		for (runp = ifa; runp != NULL; runp = runp->ifa_next) {
    21  #if defined __UCLIBC_HAS_IPV4__
    22  			if (runp->ifa_addr->sa_family == PF_INET)
    23  				seen |= SEEN_IPV4;
    24 @@ -195,7 +195,7 @@
    25  			if (runp->ifa_addr->sa_family == PF_INET6)
    26  				seen |= SEEN_IPV6;
    27  #endif /* __UCLIBC_HAS_IPV6__ */
    28 -
    29 +                }
    30  		freeifaddrs(ifa);
    31  	}
    32  #else