packages: glibc/glibc.spec, glibc/glibc-pr13013.patch (NEW) - fix 'res_quer...

pluto pluto at pld-linux.org
Wed Nov 23 19:31:25 CET 2011


Author: pluto                        Date: Wed Nov 23 18:31:25 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- fix 'res_query.c:251: __libc_res_nquery: Assertion `hp != hp2' failed' failures.

---- Files affected:
packages/glibc:
   glibc.spec (1.937 -> 1.938) , glibc-pr13013.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/glibc/glibc.spec
diff -u packages/glibc/glibc.spec:1.937 packages/glibc/glibc.spec:1.938
--- packages/glibc/glibc.spec:1.937	Tue Oct 25 12:17:31 2011
+++ packages/glibc/glibc.spec	Wed Nov 23 19:31:20 2011
@@ -34,7 +34,7 @@
 Summary(uk.UTF-8):	GNU libc версії
 Name:		glibc
 Version:	2.14.1
-Release:	2
+Release:	2.1
 Epoch:		6
 License:	LGPL v2.1+
 Group:		Libraries
@@ -87,6 +87,7 @@
 Patch39:	%{name}-git.patch
 Patch40:	%{name}-bad-fix.patch
 Patch41:	%{name}-pr12892.patch
+Patch42:	%{name}-pr13013.patch
 URL:		http://www.gnu.org/software/libc/
 %{?with_selinux:BuildRequires:	audit-libs-devel}
 BuildRequires:	autoconf
@@ -953,6 +954,7 @@
 %patch40 -p1
 # revert broken fix
 %patch41 -p1
+%patch42 -p1
 
 # cleanup backups after patching
 find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f
@@ -1783,6 +1785,9 @@
 All persons listed below can be reached at <cvs_login>@pld-linux.org
 
 $Log$
+Revision 1.938  2011/11/23 18:31:20  pluto
+- fix 'res_query.c:251: __libc_res_nquery: Assertion `hp != hp2' failed' failures.
+
 Revision 1.937  2011/10/25 10:17:31  arekm
 - rel 2
 

================================================================
Index: packages/glibc/glibc-pr13013.patch
diff -u /dev/null packages/glibc/glibc-pr13013.patch:1.1
--- /dev/null	Wed Nov 23 19:31:25 2011
+++ packages/glibc/glibc-pr13013.patch	Wed Nov 23 19:31:20 2011
@@ -0,0 +1,51 @@
+--- a/resolv/res_query.c
++++ b/resolv/res_query.c
+@@ -122,6 +122,7 @@ __libc_res_nquery(res_state statp,
+ 		  int *resplen2)
+ {
+ 	HEADER *hp = (HEADER *) answer;
++	HEADER *hp2;
+ 	int n, use_malloc = 0;
+ 	u_int oflags = statp->_flags;
+ 
+@@ -239,26 +240,25 @@ __libc_res_nquery(res_state statp,
+ 	  /* __libc_res_nsend might have reallocated the buffer.  */
+ 	  hp = (HEADER *) *answerp;
+ 
+-	/* We simplify the following tests by assigning HP to HP2.  It
+-	   is easy to verify that this is the same as ignoring all
+-	   tests of HP2.  */
+-	HEADER *hp2 = answerp2 ? (HEADER *) *answerp2 : hp;
+-
+-	if (n < (int) sizeof (HEADER) && answerp2 != NULL
+-	    && *resplen2 > (int) sizeof (HEADER))
++	/* We simplify the following tests by assigning HP to HP2 or
++	   vice versa.  It is easy to verify that this is the same as
++	   ignoring all tests of HP or HP2.  */
++	if (answerp2 == NULL || *resplen2 < (int) sizeof (HEADER))
+ 	  {
+-	    /* Special case of partial answer.  */
+-	    assert (hp != hp2);
+-	    hp = hp2;
++	    hp2 = hp;
+ 	  }
+-	else if (answerp2 != NULL && *resplen2 < (int) sizeof (HEADER)
+-		 && n > (int) sizeof (HEADER))
++	else
+ 	  {
+-	    /* Special case of partial answer.  */
+-	    assert (hp != hp2);
+-	    hp2 = hp;
++	    hp2 = (HEADER *) *answerp2;
++	    if (n < (int) sizeof (HEADER))
++	      {
++	        hp = hp2;
++	      }
+ 	  }
+ 
++	/* Make sure both hp and hp2 are defined */
++	assert((hp != NULL) && (hp2 != NULL));
++
+ 	if ((hp->rcode != NOERROR || ntohs(hp->ancount) == 0)
+ 	    && (hp2->rcode != NOERROR || ntohs(hp2->ancount) == 0)) {
+ #ifdef DEBUG
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/glibc/glibc.spec?r1=1.937&r2=1.938&f=u



More information about the pld-cvs-commit mailing list