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

Bug#658424: marked as done (pu: package eglibc/2.11.3-3)



Your message dated Sat, 12 May 2012 13:32:55 +0100
with message-id <dda96cc3369bdcdc1a3cdf68c2fc2f56@mail.adsl.funky-badger.org>
and subject line Closing requests for packages included in 6.0.5
has caused the Debian Bug report #658424,
regarding pu: package eglibc/2.11.3-3
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.)


-- 
658424: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658424
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: pu

eglibc 2.11.3-2 shipped in Debian Squeeze 6.0.4 suffers from a 
regression in the resolver code with broken DNS server not answering
correctly to AAAA requests. It causes the first or sometimes more DNS
resolving requests to fail. See bug#658171 for more details.

The actual problem has been triggered by the patch 
debian/patches/any/cvs-resolv-different-nameserver.diff, which allows to
fallback to the next server in /etc/resolv.conf in case a DNS server
doesn't answer. Given this feature is quite important, and given this 
code is also present in recent upstream versions (it appears that 
wheezy and sid are also affected), it seemed to be a good idea to fix 
the real problem instead of simply reverting this patch.

The diff below is a proposal for an upload to stable-proposed-updates
fixing the DNS issue, as well as a security issue as requested by the
security team. Both patches are already in sid (though the DNS one is
only present in 2.13-26 that has just been uploaded).

Would it be possible to upload it? You might actually want to wait a 
few days for having some feedback of the sid upload.



Index: debian/patches/any/submitted-resolv-first-query-failure.diff
===================================================================
--- debian/patches/any/submitted-resolv-first-query-failure.diff	(révision 0)
+++ debian/patches/any/submitted-resolv-first-query-failure.diff	(révision 5155)
@@ -0,0 +1,36 @@
+2012-02-02  Aurelien Jarno  <aurel32@debian.org>
+
+	* resolv/res_query.c(__libc_res_nsearch): succeed if the first
+	query fails, but the second query succeeds.
+
+diff --git a/resolv/res_query.c b/resolv/res_query.c
+index 947c651..c88268f 100644
+--- a/resolv/res_query.c
++++ b/resolv/res_query.c
+@@ -378,7 +378,7 @@ __libc_res_nsearch(res_state statp,
+ 		ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
+ 					      answer, anslen, answerp,
+ 					      answerp2, nanswerp2, resplen2);
+-		if (ret > 0 || trailing_dot)
++		if (ret > 0 || (ret == 0 && *resplen2 > 0) || trailing_dot)
+ 			return (ret);
+ 		saved_herrno = h_errno;
+ 		tried_as_is++;
+@@ -418,7 +418,7 @@ __libc_res_nsearch(res_state statp,
+ 						      answer, anslen, answerp,
+ 						      answerp2, nanswerp2,
+ 						      resplen2);
+-			if (ret > 0)
++			if ((ret > 0) || (ret == 0 && *resplen2 > 0))
+ 				return (ret);
+ 
+ 			if (answerp && *answerp != answer) {
+@@ -487,7 +487,7 @@ __libc_res_nsearch(res_state statp,
+ 		ret = __libc_res_nquerydomain(statp, name, NULL, class, type,
+ 					      answer, anslen, answerp,
+ 					      answerp2, nanswerp2, resplen2);
+-		if (ret > 0)
++		if ((ret > 0) || (ret == 0 && *resplen2 > 0))
+ 			return (ret);
+ 	}
+ 
Index: debian/patches/any/cvs-tzfile.diff
===================================================================
--- debian/patches/any/cvs-tzfile.diff	(révision 0)
+++ debian/patches/any/cvs-tzfile.diff	(révision 5154)
@@ -0,0 +1,85 @@
+2011-12-17  Ulrich Drepper  <drepper@gmail.com>
+
+	[BZ #13506]
+	* time/tzfile.c (__tzfile_read): Check values from file header.
+
+diff --git a/time/tzfile.c b/time/tzfile.c
+index 144e20b..402389c 100644
+--- a/time/tzfile.c
++++ b/time/tzfile.c
+@@ -26,6 +26,7 @@
+ #include <time.h>
+ #include <unistd.h>
+ #include <sys/stat.h>
++#include <stdint.h>
+ 
+ #define	NOID
+ #include <timezone/tzfile.h>
+@@ -234,23 +234,58 @@ __tzfile_read (const char *file, size_t extra, char **extrap)
+       goto read_again;
+     }
+ 
++  if (__builtin_expect (num_transitions
++			> ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1))
++			   / (sizeof (time_t) + 1)), 0))
++    goto lose;
+   total_size = num_transitions * (sizeof (time_t) + 1);
+   total_size = ((total_size + __alignof__ (struct ttinfo) - 1)
+ 		& ~(__alignof__ (struct ttinfo) - 1));
+   types_idx = total_size;
+-  total_size += num_types * sizeof (struct ttinfo) + chars;
++  if (__builtin_expect (num_types
++			> (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0))
++    goto lose;
++  total_size += num_types * sizeof (struct ttinfo);
++  if (__builtin_expect (chars > SIZE_MAX - total_size, 0))
++    goto lose;
++  total_size += chars;
++  if (__builtin_expect (__alignof__ (struct leap) - 1
++			> SIZE_MAX - total_size, 0))
++    goto lose;
+   total_size = ((total_size + __alignof__ (struct leap) - 1)
+ 		& ~(__alignof__ (struct leap) - 1));
+   leaps_idx = total_size;
++  if (__builtin_expect (num_leaps
++			> (SIZE_MAX - total_size) / sizeof (struct leap), 0))
++    goto lose;
+   total_size += num_leaps * sizeof (struct leap);
+-  tzspec_len = (sizeof (time_t) == 8 && trans_width == 8
+-		? st.st_size - (ftello (f)
+-				+ num_transitions * (8 + 1)
+-				+ num_types * 6
+-				+ chars
+-				+ num_leaps * 12
+-				+ num_isstd
+-				+ num_isgmt) - 1 : 0);
++  tzspec_len = 0;
++  if (sizeof (time_t) == 8 && trans_width == 8)
++    {
++      off_t rem = st.st_size - ftello (f);
++      if (__builtin_expect (rem < 0
++			    || (size_t) rem < (num_transitions * (8 + 1)
++					       + num_types * 6
++					       + chars), 0))
++	goto lose;
++      tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
++				   + num_types * 6
++				   + chars);
++      if (__builtin_expect (num_leaps > SIZE_MAX / 12
++			    || tzspec_len < num_leaps * 12, 0))
++	goto lose;
++      tzspec_len -= num_leaps * 12;
++      if (__builtin_expect (tzspec_len < num_isstd, 0))
++	goto lose;
++      tzspec_len -= num_isstd;
++      if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
++	goto lose;
++      tzspec_len -= num_isgmt + 1;
++      if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
++	goto lose;
++    }
++  if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0))
++    goto lose;
+ 
+   /* Allocate enough memory including the extra block requested by the
+      caller.  */
Index: debian/patches/series
===================================================================
--- debian/patches/series	(révision 5091)
+++ debian/patches/series	(copie de travail)
@@ -270,3 +270,5 @@
 any/cvs-dl_close-scope-handling.diff
 any/cvs-nptl-pthread-race.diff
 any/cvs-statvfs-mount-flags.diff
+any/cvs-tzfile.diff
+any/submitted-resolv-first-query-failure.diff
Index: debian/changelog
===================================================================
--- debian/changelog	(révision 5091)
+++ debian/changelog	(copie de travail)
@@ -1,3 +1,13 @@
+eglibc (2.11.3-3) stable; urgency=low
+
+  * patches/any/cvs-tzfile.diff: fix integer overflow in timezone code.
+    (CVE-2009-5029).  Closes: #650790.
+  * patches/any/submitted-resolv-first-query-failure.diff: new patch to fix
+    resolving issues with broken servers returning NOTIMP or FORMERR to AAAA
+    queries.  Closes: #658171.
+
+ -- Aurelien Jarno <aurel32@debian.org>  Thu, 02 Feb 2012 22:20:02 +0100
+
 eglibc (2.11.3-2) stable; urgency=low
 
   * Add patches/arm/cvs-tls-unallocated.diff and

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

Kernel: Linux 3.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash



--- End Message ---
--- Begin Message ---
Version: 6.0.5

Hi,

All of the packages referenced by the closed bugs were included in the 6.0.5 point release which occured today.

Regards,

Adam


--- End Message ---

Reply to: