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

Bug#557597: marked as done (gaih_inet logic for summarizing gethostbyname4_r results broken)

Your message dated Mon, 23 Nov 2009 11:48:34 +0000
with message-id <E1NCXPG-0001d7-Vz@ries.debian.org>
and subject line Bug#557596: fixed in eglibc 2.10.2-1
has caused the Debian Bug report #557596,
regarding gaih_inet logic for summarizing gethostbyname4_r results broken
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

557596: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=557596
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: eglibc
Version: 2.10.1-7
Severity: important
Tags: patch

NSS plugins wishing to provide data to programs calling getaddrinfo() must
implement two procedures named:
   _nss_<foo>_gethostbyname4_r() and

The function gaih_inet() in libc dynamically loads and calls these procedures
and then attempts to combine the results from all available plugins.

Unfortunately, in the following scenario, the combination step is performed

  1. Install your NSS plugin so that it is called after the
     libnss_dns-2.10.1.so plugin.

2. Remove your default route.
  3. Call getaddrinfo(NODE, SERVICE, NULL, &results).
The problem is that the third call, internally, results in a call to

which returns NSS_STATUS_UNAVAIL with herrno = TRY_AGAIN. This combination of
return and error codes causes gaih_inet()'s logic to set
  no_data = -3.

This variable is used to signal to the rest of the gaih_inet procedure that no
results are available.

Unfortunately, when your plugin returns NSS_STATUS_SUCCESS and sets herrno =
NETDB_SUCCESS, your plugin's results will be *ignored* because gaih_inet
exits its loop without resetting no_data.

The attached patch fixes the problem for me. The patch was tested with code
from http://wiki.laptop.org/go/Dnshash.

-- System Information:
Debian Release: squeeze/sid
  APT prefers stable
  APT policy: (700, 'stable'), (600, 'unstable'), (500, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.30-2-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- a/sysdeps/posix/getaddrinfo.c       2009-11-22 16:21:19.000000000 -0500
+++ b/sysdeps/posix/getaddrinfo.c       2009-11-22 16:28:26.000000000 -0500
@@ -715,7 +715,10 @@ gaih_inet (const char *name, const struc
                                                   tmpbuflen, &rc, &herrno,
                      if (status == NSS_STATUS_SUCCESS)
-                       break;
+                       {
+                         no_data = 0;
+                         break;
+                       }
                      if (status != NSS_STATUS_TRYAGAIN
                          || rc != ERANGE || herrno != NETDB_INTERNAL)

--- End Message ---
--- Begin Message ---
Source: eglibc
Source-Version: 2.10.2-1

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:

  to main/e/eglibc/eglibc-source_2.10.2-1_all.deb
  to main/e/eglibc/eglibc_2.10.2-1.diff.gz
  to main/e/eglibc/eglibc_2.10.2-1.dsc
  to main/e/eglibc/eglibc_2.10.2.orig.tar.gz
  to main/e/eglibc/glibc-doc_2.10.2-1_all.deb
  to main/e/eglibc/libc-bin_2.10.2-1_amd64.deb
  to main/e/eglibc/libc-dev-bin_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-dbg_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-dev-i386_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-dev_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-i386_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-pic_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-prof_2.10.2-1_amd64.deb
  to main/e/eglibc/libc6-udeb_2.10.2-1_amd64.udeb
  to main/e/eglibc/libc6_2.10.2-1_amd64.deb
  to main/e/eglibc/libnss-dns-udeb_2.10.2-1_amd64.udeb
  to main/e/eglibc/libnss-files-udeb_2.10.2-1_amd64.udeb
  to main/e/eglibc/locales-all_2.10.2-1_amd64.deb
  to main/e/eglibc/locales_2.10.2-1_all.deb
  to main/e/eglibc/nscd_2.10.2-1_amd64.deb

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

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

Debian distribution maintenance software
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)

Hash: SHA1

Format: 1.8
Date: Mon, 23 Nov 2009 09:46:23 +0100
Source: eglibc
Binary: libc-bin libc-dev-bin glibc-doc eglibc-source locales locales-all nscd 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-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-sparcv9b libc6-i686 libc6-xen libc0.1-i686 libc6.1-alphaev67 libnss-dns-udeb libnss-files-udeb
Architecture: source all amd64
Version: 2.10.2-1
Distribution: unstable
Urgency: low
Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
Changed-By: Aurelien Jarno <aurel32@debian.org>
 eglibc-source - Embedded GNU C Library: sources
 glibc-doc  - GNU C Library: Documentation
 libc-bin   - GNU C Library: Binaries
 libc-dev-bin - GNU C Library: Development binaries
 libc0.1    - GNU C Library: Shared libraries
 libc0.1-dbg - GNU C Library: detached debugging symbols
 libc0.1-dev - GNU C Library: Development Libraries and Header Files
 libc0.1-dev-i386 - GNU C Library: 32bit development libraries for AMD64
 libc0.1-i386 - GNU C Library: 32bit shared libraries for AMD64
 libc0.1-i686 - GNU C Library: Shared libraries [i686 optimized]
 libc0.1-pic - GNU C Library: PIC archive library
 libc0.1-prof - GNU C Library: Profiling Libraries
 libc0.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc0.3    - GNU C Library: Shared libraries
 libc0.3-dbg - GNU C Library: detached debugging symbols
 libc0.3-dev - GNU C Library: Development Libraries and Header Files
 libc0.3-pic - GNU C Library: PIC archive library
 libc0.3-prof - GNU C Library: Profiling Libraries
 libc0.3-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc6      - GNU C Library: Shared libraries
 libc6-amd64 - GNU C Library: 64bit Shared libraries for AMD64
 libc6-dbg  - GNU C Library: detached debugging symbols
 libc6-dev  - GNU C Library: Development Libraries and Header Files
 libc6-dev-amd64 - GNU C Library: 64bit Development Libraries for AMD64
 libc6-dev-i386 - GNU C Library: 32-bit development libraries for AMD64
 libc6-dev-mips64 - GNU C Library: 64bit Development Libraries for MIPS64
 libc6-dev-mipsn32 - GNU C Library: n32 Development Libraries for MIPS64
 libc6-dev-powerpc - GNU C Library: 32bit powerpc development libraries for ppc64
 libc6-dev-ppc64 - GNU C Library: 64bit Development Libraries for PowerPC64
 libc6-dev-s390x - GNU C Library: 64bit Development Libraries for IBM zSeries
 libc6-dev-sparc64 - GNU C Library: 64bit Development Libraries for UltraSPARC
 libc6-i386 - GNU C Library: 32-bit shared libraries for AMD64
 libc6-i686 - GNU C Library: Shared libraries [i686 optimized]
 libc6-mips64 - GNU C Library: 64bit Shared libraries for MIPS64
 libc6-mipsn32 - GNU C Library: n32 Shared libraries for MIPS64
 libc6-pic  - GNU C Library: PIC archive library
 libc6-powerpc - GNU C Library: 32bit powerpc shared libraries for ppc64
 libc6-ppc64 - GNU C Library: 64bit Shared libraries for PowerPC64
 libc6-prof - GNU C Library: Profiling Libraries
 libc6-s390x - GNU C Library: 64bit Shared libraries for IBM zSeries
 libc6-sparc64 - GNU C Library: 64bit Shared libraries for UltraSPARC
 libc6-sparcv9b - GNU C Library: Shared libraries [v9b optimized]
 libc6-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libc6-xen  - GNU C Library: Shared libraries [Xen version]
 libc6.1    - GNU C Library: Shared libraries
 libc6.1-alphaev67 - GNU C Library: Shared libraries (EV67 optimized)
 libc6.1-dbg - GNU C Library: detached debugging symbols
 libc6.1-dev - GNU C Library: Development Libraries and Header Files
 libc6.1-pic - GNU C Library: PIC archive library
 libc6.1-prof - GNU C Library: Profiling Libraries
 libc6.1-udeb - GNU C Library: Shared libraries - udeb (udeb)
 libnss-dns-udeb - GNU C Library: NSS helper for DNS - udeb (udeb)
 libnss-files-udeb - GNU C Library: NSS helper for files - udeb (udeb)
 locales    - GNU C Library: National Language (locale) data [support]
 locales-all - GNU C Library: Precompiled locale data
 nscd       - GNU C Library: Name Service Cache Daemon
Closes: 552407 555303 556600 556631 556884 556951 557158 557248 557596
 eglibc (2.10.2-1) unstable; urgency=low
   [ Aurelien Jarno ]
   * New upstream minor release.
     - fix build timeout on SH4.  Closes: #552407.
     - disabled patches/svn-updates.diff.
     - remove patches/powerpc/cvs-readahead.diff (merged).
     - remove patches/any/submitted-libgcc_s.so.diff (merged).
     - remove patches/any/cvs-preadv-pwritev.diff (merged).
     - remove patches/any/cvs-getaddrinfo-nss-notfound.diff (merged).
   * patches/ia64/cvs-memchr.diff: new patch from upstream replacing
   * patches/any/cvs-malloc-check.diff: new patch from upstream to fix bugs
     with MALLOC_CHECK.  Closes: #557158.
   * patches/any/cvs-ksm.diff: add support to KSM, define MADV_MERGEABLE and
     MADV_UNMERGEABLE. Closes: #556631.
   * Replace patches/locale/fix-C-first_weekday.diff by upstream version
     patches/locale/cvs-C-first_weekday.diff.  Closes: #556884.
   * rules.d/debhelper.mk: don't use --strip-unneeded when stripping .o
     objects.  Closes: #556951.
   * patches/any/submitted-bits-fcntl_h-at.diff: new patch to move AT_*
     constants from <fcntl.h> to <bits/fcntl.h>. Closes: #555303.
   * Replace patches/any/submitted-sched_h.2.diff by upstream version
   * Use gcc/g++-4.4 on sparc.
   * patches/any/submitted-nis-not-configured.diff: fix getaddrinfo() if
     NIS is not configured.  Closes: #556600.
   * patches/any/submitted-getaddrinfo-nodata.diff: new patch from Michael
     Stone to fix getaddrinfo() if a plugin returns TRY_AGAIN or NO_DATA.
     Closes: #557596.
   [ Carlos O'Donell]
   * patches/hppa/local-stack-grows-up.diff: new version.
   [ Petr Salinger]
   * kfreebsd/local-sysdeps.diff: update to revision 2859 (from glibc-bsd).
     Closes: #557248.
 a5a2d0b342a709c19ecb8f4b16b565c4f08cfae3 2803 eglibc_2.10.2-1.dsc
 dd032b162a9f65fb17bbb4e82f4ac8e01f2d69c7 22488271 eglibc_2.10.2.orig.tar.gz
 19b0971acbc544c6d6db9ad69da1d7146aecb307 784381 eglibc_2.10.2-1.diff.gz
 45e9adc3b086ac129e96b8f567d38623557c476f 1815034 glibc-doc_2.10.2-1_all.deb
 6523f9c631f303ae5d00610dc6967de90ed82d10 10937652 eglibc-source_2.10.2-1_all.deb
 6c9a13a9484e5db179cf946d448348eae418b586 4752412 locales_2.10.2-1_all.deb
 bbe8224ac01170f53b141a40bb20d68cc6f1a33c 4241810 libc6_2.10.2-1_amd64.deb
 84ea1d533055d9da2a67dec21def0e378fc2f2fe 2545990 libc6-dev_2.10.2-1_amd64.deb
 b5a3d7258e48deac48fd2c6d075bc9691c8c122d 1992710 libc6-prof_2.10.2-1_amd64.deb
 248d1bce594175d1bcd7a04ade7f16d5c1d4c255 1517072 libc6-pic_2.10.2-1_amd64.deb
 f8802e52a9c3d8fa7d4754ffb15723487bfcbd01 727400 libc-bin_2.10.2-1_amd64.deb
 4fa55e2c0ec877fd95ccb79819b0c1af11065fdb 200370 libc-dev-bin_2.10.2-1_amd64.deb
 2cecdd9066cdeee19db9b1e23a0f32686d986c7d 3027352 locales-all_2.10.2-1_amd64.deb
 fb3a00a55aa8e1399e154199a5381a86421adcad 3792800 libc6-i386_2.10.2-1_amd64.deb
 469f0596c3953e35ee0b4483cff7671451d5c2b5 1497798 libc6-dev-i386_2.10.2-1_amd64.deb
 3dba8f969e91186c9761e4660cb2abcfde6e4c33 189328 nscd_2.10.2-1_amd64.deb
 10209df4189fe0b02251e3751e38ca1605e1aa08 10254286 libc6-dbg_2.10.2-1_amd64.deb
 edec1702916dec3288161e9faa62d7973f2fd439 1133014 libc6-udeb_2.10.2-1_amd64.udeb
 8d5497c52e69949ffc3f3044646a57226cb5d4d7 11210 libnss-dns-udeb_2.10.2-1_amd64.udeb
 dccd6f2ad7dd2575e4e0eee3441de1069dc392cb 19534 libnss-files-udeb_2.10.2-1_amd64.udeb
 f419a0be19f8b6a031a43efdd993aa2a07524d385931b7da0343036e1bef44d5 2803 eglibc_2.10.2-1.dsc
 1d816257fab4ced58d6cf52c92d56f3fdc3d62890b12c51677299ca36ad57be4 22488271 eglibc_2.10.2.orig.tar.gz
 8dba17e887d93d75f2cc8e4e05cebe6108315b8b64d27d16ad7f29d1fbda026e 784381 eglibc_2.10.2-1.diff.gz
 62befd414b3ad0ff3dc145fcbd9092d7162a5008c6775b79a4eb52fc05739c85 1815034 glibc-doc_2.10.2-1_all.deb
 e3ced39e77a8e7ff4f596e94d69f4720d2dd07afdaa393713cee5ed2292c2e0c 10937652 eglibc-source_2.10.2-1_all.deb
 5349118cb012313739d34b7d9e4887987522753ae080bb20ba5b238533b64ee1 4752412 locales_2.10.2-1_all.deb
 aac1e725f7a9d4c2e73ab258a9a4bad8497fdd178f1a54c8491ac074f217ab17 4241810 libc6_2.10.2-1_amd64.deb
 7ba7a14869af97c637a13a55db8d76b19af4566a129b37e48e7b14ffcb33e335 2545990 libc6-dev_2.10.2-1_amd64.deb
 2a025c93c2e6c3dd849da3a9f4fb9bbe6fdba6150e8c313aba2198eac410dad4 1992710 libc6-prof_2.10.2-1_amd64.deb
 7f2deb732e687be2f0c9cd6938ba4f6d9d43158dfb75e75517433f35f3986f9b 1517072 libc6-pic_2.10.2-1_amd64.deb
 0782e745860e48acfebeb51c3a87f904126ecff76e5c3d34a6dae1e196b4af92 727400 libc-bin_2.10.2-1_amd64.deb
 60cb0cb38d68e60b6fbc5823dda360a5d998489137e82221a2552de369fdfce0 200370 libc-dev-bin_2.10.2-1_amd64.deb
 1c995e6631a24f80bbf36654f7867b3da02d538a987b3068b1111a2425da9e54 3027352 locales-all_2.10.2-1_amd64.deb
 47e587d446057e649b96d595fc7925ce8f863ba65a762f5779dd4969952e3769 3792800 libc6-i386_2.10.2-1_amd64.deb
 17a785cacafb884c233375ac5191efd02564891216ede0b3bd492e2681c50864 1497798 libc6-dev-i386_2.10.2-1_amd64.deb
 4a3a99c1f1ddbd41d20a0de1b195f60efa7d1652df92c932c2593cfe8b8752c2 189328 nscd_2.10.2-1_amd64.deb
 68ace033528d89e14214ad8f492317a5150c9703e15bfc2e9766965890698c65 10254286 libc6-dbg_2.10.2-1_amd64.deb
 be900e50fe513ac4c9749cec95d61cd0950e8b2b75fd5642062dee664b732724 1133014 libc6-udeb_2.10.2-1_amd64.udeb
 507c2a77c5065492b2c0463688d97f81f9f745dc365e017838077ada88da6abf 11210 libnss-dns-udeb_2.10.2-1_amd64.udeb
 9c2d9968af35cecbc4c7ad59806eb8242aed4e2dd1212ce56dca0343803eede1 19534 libnss-files-udeb_2.10.2-1_amd64.udeb
 3881dddb3974d07589ffad7d08e8bf4f 2803 libs required eglibc_2.10.2-1.dsc
 220ad07d1aed74bb96d04bc3baf2add7 22488271 libs required eglibc_2.10.2.orig.tar.gz
 ba87db42224a175d67344785b6cc9a84 784381 libs required eglibc_2.10.2-1.diff.gz
 0b8e2e23c1bb2fd9fbfe42112470b3e4 1815034 doc optional glibc-doc_2.10.2-1_all.deb
 79f2fefa1fe1efc8132d7fdbd813777c 10937652 devel optional eglibc-source_2.10.2-1_all.deb
 cedab109211fe6f0badcbc6a704123e5 4752412 libs standard locales_2.10.2-1_all.deb
 cb24e9b621b9fae59a4d19a25b02c3f6 4241810 libs required libc6_2.10.2-1_amd64.deb
 969b3b230e8680b5b80a47cfa839a7d9 2545990 libdevel optional libc6-dev_2.10.2-1_amd64.deb
 f3f31d3af0d3b40bfb864d051a77a2fc 1992710 libdevel extra libc6-prof_2.10.2-1_amd64.deb
 a5d4af0e7f3bac7bdd63e4913f9cb078 1517072 libdevel optional libc6-pic_2.10.2-1_amd64.deb
 6cd06dc12ea50dc2bdfddca7635d26aa 727400 libs required libc-bin_2.10.2-1_amd64.deb
 98355286e9b69e0d1c663d066ee54bde 200370 libdevel optional libc-dev-bin_2.10.2-1_amd64.deb
 5933f88f92981a43df8a26038b0bf960 3027352 libs extra locales-all_2.10.2-1_amd64.deb
 574dc2c995eae26c5bc39c78429e8d87 3792800 libs optional libc6-i386_2.10.2-1_amd64.deb
 206618686729b466f6cfa13a285e5aa1 1497798 libdevel optional libc6-dev-i386_2.10.2-1_amd64.deb
 5668641ed3d4ddeae1141229bd1d8da9 189328 admin optional nscd_2.10.2-1_amd64.deb
 8cceb4ea7dfb1718c9684a772acb5f83 10254286 debug extra libc6-dbg_2.10.2-1_amd64.deb
 46f8409a755864ff763e2d3612cd7a95 1133014 debian-installer extra libc6-udeb_2.10.2-1_amd64.udeb
 0c7520f4daf64d6e0fa2c010d43ecf18 11210 debian-installer extra libnss-dns-udeb_2.10.2-1_amd64.udeb
 abd062ee30da819d8e0f19a444cdf6fd 19534 debian-installer extra libnss-files-udeb_2.10.2-1_amd64.udeb
Package-Type: udeb

Version: GnuPG v1.4.10 (GNU/Linux)


--- End Message ---

Reply to: