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

r4741 - in glibc-package/trunk/debian: . patches patches/any



Author: aurel32
Date: 2011-06-20 20:33:34 +0000 (Mon, 20 Jun 2011)
New Revision: 4741

Added:
   glibc-package/trunk/debian/patches/any/cvs-resolv-different-nameserver.diff
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/patches/series
Log:
  * Add patches/any/cvs-resolv-different-nameserver.diff to try a different
    nameserver if the first one returns REFUSED.  Closes: #535504, #602291.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2011-06-20 11:08:34 UTC (rev 4740)
+++ glibc-package/trunk/debian/changelog	2011-06-20 20:33:34 UTC (rev 4741)
@@ -7,6 +7,8 @@
   [ Aurelien Jarno ]
   * Add patches/any/cvs-addmntent.diff to correctly report errors status in 
     addmntent().  Closes: #630699 / CVE-2011-1089.
+  * Add patches/any/cvs-resolv-different-nameserver.diff to try a different
+    nameserver if the first one returns REFUSED.  Closes: #535504, #602291.
 
  -- Aurelien Jarno <aurel32@debian.org>  Mon, 20 Jun 2011 13:07:17 +0200
 

Added: glibc-package/trunk/debian/patches/any/cvs-resolv-different-nameserver.diff
===================================================================
--- glibc-package/trunk/debian/patches/any/cvs-resolv-different-nameserver.diff	                        (rev 0)
+++ glibc-package/trunk/debian/patches/any/cvs-resolv-different-nameserver.diff	2011-06-20 20:33:34 UTC (rev 4741)
@@ -0,0 +1,59 @@
+2011-06-15  Ulrich Drepper  <drepper@gmail.com>
+
+	* resolv/res_send.c (__libc_res_nsend): Fix typos in last patch.  We
+	need to dereference resplen2.
+
+2011-05-30  Ulrich Drepper  <drepper@gmail.com>
+ 
+	[BZ #12684]
+	* resolv/res_send.c (__libc_res_nsend): Only go to the next name server
+	if both request failed.
+	(send_dg): In case of server errors clear resplen or *resplen2.
+
+diff --git a/resolv/res_send.c b/resolv/res_send.c
+index 845b658..97142b7 100644
+--- a/resolv/res_send.c
++++ b/resolv/res_send.c
+@@ -549,7 +549,7 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
+ 				    ns, ansp, ansp2, nansp2, resplen2);
+ 			if (n < 0)
+ 				return (-1);
+-			if (n == 0)
++			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
+ 				goto next_ns;
+ 		} else {
+ 			/* Use datagrams. */
+@@ -559,7 +559,7 @@ __libc_res_nsend(res_state statp, const u_char *buf, int buflen,
+ 				    ansp2, nansp2, resplen2);
+ 			if (n < 0)
+ 				return (-1);
+-			if (n == 0)
++			if (n == 0 && (buf2 == NULL || *resplen2 == 0))
+ 				goto next_ns;
+ 			if (v_circuit)
+ 			  // XXX Check whether both requests failed or
+@@ -1275,10 +1275,14 @@ send_dg(res_state statp,
+ 				(*thisresplenp > *thisanssizp)
+ 				? *thisanssizp : *thisresplenp);
+ 
+-			if (recvresp1 || (buf2 != NULL && recvresp2))
++			if (recvresp1 || (buf2 != NULL && recvresp2)) {
++			  *resplen2 = 0;
+ 			  return resplen;
++			}
+ 			if (buf2 != NULL)
+ 			  {
++			    /* No data from the first reply.  */
++			    resplen = 0;
+ 			    /* We are waiting for a possible second reply.  */
+ 			    if (hp->id == anhp->id)
+ 			      recvresp1 = 1;
+@@ -1344,7 +1348,7 @@ send_dg(res_state statp,
+ 		goto err_out;
+ 	}
+ 	else {
+-	  	/* poll should not have returned > 0 in this case.  */
++		/* poll should not have returned > 0 in this case.  */
+ 		abort ();
+ 	}
+ }

Modified: glibc-package/trunk/debian/patches/series
===================================================================
--- glibc-package/trunk/debian/patches/series	2011-06-20 11:08:34 UTC (rev 4740)
+++ glibc-package/trunk/debian/patches/series	2011-06-20 20:33:34 UTC (rev 4741)
@@ -269,3 +269,4 @@
 any/cvs-unique_sym_table-corruptions.diff
 any/submitted-mqueue-throw.diff
 any/cvs-addmntent.diff
+any/cvs-resolv-different-nameserver.diff


Reply to: