[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#690021: marked as done (libc0.1: getaddrinfo() might fail with IPv6 DNS record and no IPv6 connection)



Your message dated Fri, 26 Oct 2012 17:33:42 +0000
with message-id <E1TRnmw-0002SY-DM@franck.debian.org>
and subject line Bug#690021: fixed in eglibc 2.13-36
has caused the Debian Bug report #690021,
regarding libc0.1: getaddrinfo() might fail with IPv6 DNS record and no IPv6 connection
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
690021: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=690021
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: libc0.1
Version: 2.13-35
Severity: grave
Tags: d-i upstream patch ipv6
Justification: renders package unusable

On a GNU/kFreeBSD machine without IPv6 connection, but with a DNS server
returning IPv6 addresses, getaddrinfo() might fail to return only IPv4
addresses, causing some applications to fail to connect to some host
using an host name.

This happens when getaddrinfo() is called with service = 0 (aka port),
which is perfectly valid. getaddrinfo() determine the source address 
the kernel would use for a given destination address by opening a 
SOCK_DGRAM connection with ŧhe same port as the service. A Linux kernel
accepts such a connection with the port 0, while the FreeBSD kernel 
doesn't.

A lot of applications are calling getaddrinfo() with the port they are
going to use later, but a few others do not. Among them busybox is
affected, causing wget on IPv6 addresses for non-IPv6 connected machine
to fail, in turn causing the installation to fail:

| $ busybox wget http://ftp.debian.org
| Connecting to ftp.debian.org ([2001:610:1908:b000::148:12]:80)
| wget: can't connect to remote host: No route to host

As more and more Debian mirrors (including the default ftp.debian.org)
have an IPv6 address, it makes GNU/kFreeBSD difficultly installable on
such machines.

The fix is to use port = 1 in such case, as it is done in the FreeBSD
libc. This is what the attached patch does. I'll do an upload of eglibc
in the next days, including this patch.


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: kfreebsd-amd64 (x86_64)

Kernel: kFreeBSD 8.3-1-amd64
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libc6 depends on:
ii  libc-bin  2.13-35
ii  libgcc1   1:4.7.1-7

libc6 recommends no packages.

Versions of packages libc6 suggests:
ii  debconf [debconf-2.0]  1.5.46
ii  glibc-doc              2.13-35
ii  locales                2.13-35
ii  locales-all [locales]  2.13-35

-- debconf information excluded
--- a/sysdeps/posix/getaddrinfo.c
+++ b/sysdeps/posix/getaddrinfo.c
@@ -2267,8 +2267,15 @@
 		}
 
 	      socklen_t sl = sizeof (results[i].source_addr);
+	      struct sockaddr sa = *q->ai_addr;
+#ifdef __FreeBSD_kernel__
+	      /* The FreeBSD kernel doesn't allow connections on port 0. Use
+	         port 1 instead, as on the FreeBSD libc. */
+	      if (((struct sockaddr_in *)&sa)->sin_port == htons(0))
+		((struct sockaddr_in *)&sa)->sin_port = htons(1);
+#endif
 	      if (fd != -1
-		  && __connect (fd, q->ai_addr, q->ai_addrlen) == 0
+		  && __connect (fd, &sa, q->ai_addrlen) == 0
 		  && __getsockname (fd,
 				    (struct sockaddr *) &results[i].source_addr,
 				    &sl) == 0)

--- End Message ---
--- Begin Message ---
Source: eglibc
Source-Version: 2.13-36

We believe that the bug you reported is fixed in the latest version of
eglibc, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 690021@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Aurelien Jarno <aurel32@debian.org> (supplier of updated eglibc package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Fri, 26 Oct 2012 14:28:06 +0000
Source: eglibc
Binary: libc-bin libc-dev-bin glibc-doc eglibc-source locales locales-all nscd multiarch-support libc6 libc6-dev libc6-dbg libc6-prof libc6-pic libc6-udeb libc6.1 libc6.1-dev libc6.1-dbg libc6.1-prof libc6.1-pic libc6.1-udeb libc0.3 libc0.3-dev libc0.3-dbg libc0.3-prof libc0.3-pic libc0.3-udeb libc0.1 libc0.1-dev libc0.1-dbg libc0.1-prof libc0.1-pic libc0.1-udeb libc6-i386 libc6-dev-i386 libc6-sparc64 libc6-dev-sparc64 libc6-s390 libc6-dev-s390 libc6-s390x libc6-dev-s390x libc6-amd64 libc6-dev-amd64 libc6-powerpc libc6-dev-powerpc libc6-ppc64 libc6-dev-ppc64 libc6-mipsn32 libc6-dev-mipsn32 libc6-mips64 libc6-dev-mips64 libc0.1-i386 libc0.1-dev-i386 libc6-i686 libc6-xen libc0.1-i686 libc0.3-i686 libc0.3-xen libc6.1-alphaev67 libc6-loongson2f libnss-dns-udeb libnss-files-udeb
Architecture: source all amd64
Version: 2.13-36
Distribution: unstable
Urgency: low
Maintainer: Aurelien Jarno <aurel32@debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
Description: 
 eglibc-source - Embedded GNU C Library: sources
 glibc-doc  - Embedded GNU C Library: Documentation
 libc-bin   - Embedded GNU C Library: Binaries
 libc-dev-bin - Embedded GNU C Library: Development binaries
 libc0.1    - Embedded GNU C Library: Shared libraries
 libc0.1-dbg - Embedded GNU C Library: detached debugging symbols
 libc0.1-dev - Embedded GNU C Library: Development Libraries and Header Files
 libc0.1-dev-i386 - Embedded GNU C Library: 32bit development libraries for AMD64
 libc0.1-i386 - Embedded GNU C Library: 32bit shared libraries for AMD64
 libc0.1-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
 libc0.1-pic - Embedded GNU C Library: PIC archive library
 libc0.1-prof - Embedded GNU C Library: Profiling Libraries
 libc0.1-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
 libc0.3    - Embedded GNU C Library: Shared libraries
 libc0.3-dbg - Embedded GNU C Library: detached debugging symbols
 libc0.3-dev - Embedded GNU C Library: Development Libraries and Header Files
 libc0.3-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
 libc0.3-pic - Embedded GNU C Library: PIC archive library
 libc0.3-prof - Embedded GNU C Library: Profiling Libraries
 libc0.3-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
 libc0.3-xen - Embedded GNU C Library: Shared libraries [Xen version]
 libc6      - Embedded GNU C Library: Shared libraries
 libc6-amd64 - Embedded GNU C Library: 64bit Shared libraries for AMD64
 libc6-dbg  - Embedded GNU C Library: detached debugging symbols
 libc6-dev  - Embedded GNU C Library: Development Libraries and Header Files
 libc6-dev-amd64 - Embedded GNU C Library: 64bit Development Libraries for AMD64
 libc6-dev-i386 - Embedded GNU C Library: 32-bit development libraries for AMD64
 libc6-dev-mips64 - Embedded GNU C Library: 64bit Development Libraries for MIPS64
 libc6-dev-mipsn32 - Embedded GNU C Library: n32 Development Libraries for MIPS64
 libc6-dev-powerpc - Embedded GNU C Library: 32bit powerpc development libraries for p
 libc6-dev-ppc64 - Embedded GNU C Library: 64bit Development Libraries for PowerPC64
 libc6-dev-s390 - Embedded GNU C Library: 32bit Development Libraries for IBM zSeri
 libc6-dev-s390x - Embedded GNU C Library: 64bit Development Libraries for IBM zSeri
 libc6-dev-sparc64 - Embedded GNU C Library: 64bit Development Libraries for UltraSPAR
 libc6-i386 - Embedded GNU C Library: 32-bit shared libraries for AMD64
 libc6-i686 - Embedded GNU C Library: Shared libraries [i686 optimized]
 libc6-loongson2f - Embedded GNU C Library: Shared libraries (Loongson 2F optimized)
 libc6-mips64 - Embedded GNU C Library: 64bit Shared libraries for MIPS64
 libc6-mipsn32 - Embedded GNU C Library: n32 Shared libraries for MIPS64
 libc6-pic  - Embedded GNU C Library: PIC archive library
 libc6-powerpc - Embedded GNU C Library: 32bit powerpc shared libraries for ppc64
 libc6-ppc64 - Embedded GNU C Library: 64bit Shared libraries for PowerPC64
 libc6-prof - Embedded GNU C Library: Profiling Libraries
 libc6-s390 - Embedded GNU C Library: 32bit Shared libraries for IBM zSeries
 libc6-s390x - Embedded GNU C Library: 64bit Shared libraries for IBM zSeries
 libc6-sparc64 - Embedded GNU C Library: 64bit Shared libraries for UltraSPARC
 libc6-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
 libc6-xen  - Embedded GNU C Library: Shared libraries [Xen version]
 libc6.1    - Embedded GNU C Library: Shared libraries
 libc6.1-alphaev67 - Embedded GNU C Library: Shared libraries (EV67 optimized)
 libc6.1-dbg - Embedded GNU C Library: detached debugging symbols
 libc6.1-dev - Embedded GNU C Library: Development Libraries and Header Files
 libc6.1-pic - Embedded GNU C Library: PIC archive library
 libc6.1-prof - Embedded GNU C Library: Profiling Libraries
 libc6.1-udeb - Embedded GNU C Library: Shared libraries - udeb (udeb)
 libnss-dns-udeb - Embedded GNU C Library: NSS helper for DNS - udeb (udeb)
 libnss-files-udeb - Embedded GNU C Library: NSS helper for files - udeb (udeb)
 locales    - Embedded GNU C Library: National Language (locale) data [support]
 locales-all - Embedded GNU C Library: Precompiled locale data
 multiarch-support - Transitional package to ensure multiarch compatibility
 nscd       - Embedded GNU C Library: Name Service Cache Daemon
Closes: 684682 684889 690021 691173
Changes: 
 eglibc (2.13-36) unstable; urgency=low
 .
   [ Aurelien Jarno ]
   * patches/any/cvs-strtod-overflow.diff: new patch from upstream to fix
     an integer/buffer overflow in strtod() (CVE-2012-3480).  Closes:
     #684889.
   * patches/kfreebsd/local-getaddrinfo-freebsd-kernel.diff: new patch to
     fix getaddrinfo() when service = 0 on a FreeBSD kernel with DNS
     server returning IPv6, but without IPv6 connection.  Closes: #690021.
   * sysdeps/linux.mk: fix kernel version parsing with only two numbers.
   * patches/any/cvs-arch-lowlevellock.diff: new patch from upstream to
     fix futexes atomic issue on ARM and SPARC.  Closes: #691173.
   * local/manpages/ldconfig.8: fix wrong description of ld.so.conf format.
     Closes: #684682.
 .
   [ Samuel Thibault ]
   * libc0.3.symbols.hurd-i386: Add missing *_exec_file_name symbols.
   * patches/hurd-i386/unsubmitted-gnumach.defs.diff: New patch to build stubs
     for new gnumach.defs.
   * libc0.3.symbols.hurd-i386: Add new gnumach.defs stubs symbols.
   * control: build-depend on gnumach-dev that provides gnumach.defs.
Checksums-Sha1: 
 203cefe3cbf507836a9ac76ab5b608486bf72c21 4713 eglibc_2.13-36.dsc
 3b84fb1842a66ef7227e5e5bbb65f806d630f32e 1969122 eglibc_2.13-36.diff.gz
 8576a243876e81fc91d3a9b23a50fe435d038481 1895524 glibc-doc_2.13-36_all.deb
 f9ded99c86216ac6baf17826db72ebf45ef02b38 13387712 eglibc-source_2.13-36_all.deb
 61dd292b108106a78fe1e8e9074e95edf7ffe9d5 5712084 locales_2.13-36_all.deb
 65389e85a044808d711e7b2c0836b0139e93142b 4344722 libc6_2.13-36_amd64.deb
 0403ab27ae9e1a9c400668f5e35a7b0e23f960c3 2659578 libc6-dev_2.13-36_amd64.deb
 43a7b71602cd938d78b85c73aa27af9a690ff129 2099160 libc6-prof_2.13-36_amd64.deb
 cce851d201323f2a08a904cad2f93837e7efbc2e 1606840 libc6-pic_2.13-36_amd64.deb
 e06a597e5435c81494b6aea529c3149d6f624881 1270690 libc-bin_2.13-36_amd64.deb
 48cd50a68c37a8acebe60b063ab6e45c95a43e1f 224890 libc-dev-bin_2.13-36_amd64.deb
 a2f6f4ca31fe16e6b74c415ac0aa5d20b2c63cac 148926 multiarch-support_2.13-36_amd64.deb
 ccbbf7abb4f97244de10ab770a70d16dc96e55ea 3277158 locales-all_2.13-36_amd64.deb
 7ca42123f17ae4b2cef1bc058684b6599db407a4 4032688 libc6-i386_2.13-36_amd64.deb
 066622f2b5eddb254d23f4b8404f3437a44da328 1586140 libc6-dev-i386_2.13-36_amd64.deb
 fc86a6374e6639685131cd5bb723cf8502eb6fe3 211734 nscd_2.13-36_amd64.deb
 a7d683e1dbf2aadc47961c5dc9645396f54f255e 2579906 libc6-dbg_2.13-36_amd64.deb
 8e165466ee11d0f1af40d6f4b5de0269aefdfac7 939848 libc6-udeb_2.13-36_amd64.udeb
 5afa872cf2d31b82efaba1647863674e1427d16e 10200 libnss-dns-udeb_2.13-36_amd64.udeb
 484d0b5b8e78f240f192c19b91db9c1a22260d8f 16038 libnss-files-udeb_2.13-36_amd64.udeb
Checksums-Sha256: 
 489ca01d73ee2d725f399f26e1c0b9d0ca3b49ff242b30056d26146d5b7aa840 4713 eglibc_2.13-36.dsc
 02418b8ce9750957aa3899efd565c7dc4777219a9938e529db62a3f6c4cad7ef 1969122 eglibc_2.13-36.diff.gz
 edbdcc0bcdabe94bd0112ad6461da3b7a925923eb409b7dad4644e7b9b859008 1895524 glibc-doc_2.13-36_all.deb
 7dd7691d9e47a3bc7e6340cf53eaa457a1ead84399fd781b8aafe581cd59a36b 13387712 eglibc-source_2.13-36_all.deb
 7e1099f7d4d56b007fa49c291bede194d97bc7b35dfe411bcdbc83269b6921f1 5712084 locales_2.13-36_all.deb
 50ee405516b539ed1ffda11c59510ee19dbcf2a5cd5b8e300c1ee0cf23964e85 4344722 libc6_2.13-36_amd64.deb
 9d1275b2105ec7003e9daa0f3d0c701a7544d3cc6172c0a862035d12320c9031 2659578 libc6-dev_2.13-36_amd64.deb
 0bc9584fc893d38a512e8e9d714a5064862a024ea88929a25d9ebd461bb44f9c 2099160 libc6-prof_2.13-36_amd64.deb
 761a8983e465c8af981d7bf8750b1def9fa8fe95951ac97321b185687cb31414 1606840 libc6-pic_2.13-36_amd64.deb
 cd8df0476fb981370957d91bef2930d3c66751b0d32325780093b8267b1e9022 1270690 libc-bin_2.13-36_amd64.deb
 b77554d8ed43f92dfaf65f9440dca0c06dc4d4d2972cee04a925475abff97e3a 224890 libc-dev-bin_2.13-36_amd64.deb
 b4377acc704044752c04becbe880bc98f43df84aafd9903b4e81b2423e9dbe0f 148926 multiarch-support_2.13-36_amd64.deb
 22c1ddd83c05639af1541802120bb99df5aabb5f5158b957af1c88aad36552a0 3277158 locales-all_2.13-36_amd64.deb
 01f3b15ec78c66da6739d41a30d50f7bb7b7a1d31af94bad6f3b8cc2f479e119 4032688 libc6-i386_2.13-36_amd64.deb
 62ad3f34c9ef2e98987668decdb966ce09c2c08e48597e55b10fdbf6f567d010 1586140 libc6-dev-i386_2.13-36_amd64.deb
 d36930ab83d40e64b07831d41bf65d0823314457b3a81695e75f02ab50c622df 211734 nscd_2.13-36_amd64.deb
 0c4bacc5f7cf920b99351650a150477ece07bdfce8cd97d97a43af4a0c43ef48 2579906 libc6-dbg_2.13-36_amd64.deb
 6f14b8ef3d4294a06d794220613538ce7436f1313c0df580eb668244462f83b3 939848 libc6-udeb_2.13-36_amd64.udeb
 a7dbf23e44ac22f4142178dc0d0e49a86edbdf3d401ab5027571f880574029a6 10200 libnss-dns-udeb_2.13-36_amd64.udeb
 24a727c81e7607fc260445fa93ae70d66a86376fc71a4ace44f289d7f323f99c 16038 libnss-files-udeb_2.13-36_amd64.udeb
Files: 
 22bccc97a5ecb29981c2f79edc3afe1b 4713 libs required eglibc_2.13-36.dsc
 8ddbefaa34a4ce55fe351326549c3450 1969122 libs required eglibc_2.13-36.diff.gz
 c919bd586feaa18f03bba4940b1bea20 1895524 doc optional glibc-doc_2.13-36_all.deb
 a05d8c2f93fef3b0af7fa731d6446051 13387712 devel optional eglibc-source_2.13-36_all.deb
 833a7a3cb80debf1751cb75a9415fae1 5712084 localization standard locales_2.13-36_all.deb
 10abd36ed038747b4acd1efff9f96565 4344722 libs required libc6_2.13-36_amd64.deb
 38b5032308c8e99ba8c02f0068055703 2659578 libdevel optional libc6-dev_2.13-36_amd64.deb
 5912c3505c3850d4bb1e356891999a18 2099160 libdevel extra libc6-prof_2.13-36_amd64.deb
 ba6f09d8af6e43702e9da2ead4d978e3 1606840 libdevel optional libc6-pic_2.13-36_amd64.deb
 71ef010e1b645e44a63cff1343718ebe 1270690 libs required libc-bin_2.13-36_amd64.deb
 207ae2415bbd25242078a1d61f981325 224890 libdevel optional libc-dev-bin_2.13-36_amd64.deb
 dcc9db91b4df470d020f9a6c1d141d61 148926 libs required multiarch-support_2.13-36_amd64.deb
 190790faf0ca39aaaf44b9494d0f97df 3277158 localization extra locales-all_2.13-36_amd64.deb
 8db198a93d5f9ecaa8fd44753eec1795 4032688 libs optional libc6-i386_2.13-36_amd64.deb
 5a08db9aabd0461341051974023784e3 1586140 libdevel optional libc6-dev-i386_2.13-36_amd64.deb
 846aa364884fbdfd17170d06f7c16f8f 211734 admin optional nscd_2.13-36_amd64.deb
 0defff84c39044b4a78f603652cbf539 2579906 debug extra libc6-dbg_2.13-36_amd64.deb
 faf6da3fbda0358c38aadf7f01923606 939848 debian-installer extra libc6-udeb_2.13-36_amd64.udeb
 0d17171475744b02899ddffac0600aee 10200 debian-installer extra libnss-dns-udeb_2.13-36_amd64.udeb
 5165d9c424297055d0f0b368b4db211b 16038 debian-installer extra libnss-files-udeb_2.13-36_amd64.udeb
Package-Type: udeb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iD8DBQFQiq3Ow3ao2vG823MRAgRhAJ9Etr0m67idddtZDpdK6VFWLnpXbQCfYl/9
7myeRRZ1PjPr8V+NUhn9uhE=
=0Elb
-----END PGP SIGNATURE-----

--- End Message ---

Reply to: