[packages/mtr] - rel 2; fix segfault when mixed v4/v6 resolvers in use

arekm arekm at pld-linux.org
Wed Jun 19 20:36:02 CEST 2013


commit be422acfaba8da8f515c0e2719a2b5909bbe0f97
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Wed Jun 19 20:35:59 2013 +0200

    - rel 2; fix segfault when mixed v4/v6 resolvers in use

 mtr-v6-ns-fix.patch | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 mtr.spec            |  4 +++-
 2 files changed, 55 insertions(+), 1 deletion(-)
---
diff --git a/mtr.spec b/mtr.spec
index 4331d31..a4423df 100644
--- a/mtr.spec
+++ b/mtr.spec
@@ -10,7 +10,7 @@ Summary(ru.UTF-8):	Matt's Traceroute - утилита для диагности
 Summary(uk.UTF-8):	Matt's Traceroute - утиліта для діагностики мережі
 Name:		mtr
 Version:	0.84
-Release:	1
+Release:	2
 Epoch:		1
 License:	GPL v2
 Group:		Networking/Utilities
@@ -25,6 +25,7 @@ Patch3:		%{name}-display.patch
 Patch4:		%{name}-usage_first_max_hop.patch
 Patch5:		%{name}-noraw.patch
 Patch6:		%{name}-nox.patch
+Patch7:		mtr-v6-ns-fix.patch
 URL:		http://www.bitwizard.nl/mtr/
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake
@@ -144,6 +145,7 @@ mtr - це traceroute та ping в одному флаконі. При запу
 %patch4 -p0
 %patch5 -p1
 %patch6 -p1
+%patch7 -p1
 
 #echo 'AC_DEFUN([AM_PATH_GTK],[$3])' >> acinclude.m4
 %{!?with_x:echo 'AC_DEFUN([AM_PATH_GTK_2_0],[$3])' >> acinclude.m4}
diff --git a/mtr-v6-ns-fix.patch b/mtr-v6-ns-fix.patch
new file mode 100644
index 0000000..b50cc44
--- /dev/null
+++ b/mtr-v6-ns-fix.patch
@@ -0,0 +1,52 @@
+commit cece39e9fad8d53a1e41cae57348f5ab41ec3ba4
+Author: mutantmonkey <mutantmonkey at mutantmonkey.in>
+Date:   Sun Apr 21 15:56:59 2013 -0400
+
+    Fix segfault with mixed IPv4/IPv6 nameservers
+    
+    Fixes bug #1154432
+
+diff --git a/dns.c b/dns.c
+index 683a4aa..8ea48ba 100644
+--- a/dns.c
++++ b/dns.c
+@@ -934,6 +934,8 @@ void dorequest(char *s,int type,word id)
+   hp->id = id;	/* htons() deliberately left out (redundant) */
+ #ifdef ENABLE_IPV6
+   for (i = 0;i < NSCOUNT6;i++) {
++    if (!NSSOCKADDR6(i))
++      continue;
+     if (NSSOCKADDR6(i)->sin6_family == AF_INET6)
+       (void)sendto(resfd6,buf,r,0,(struct sockaddr *) NSSOCKADDR6(i),
+ 		   sizeof(struct sockaddr_in6));
+@@ -1340,6 +1342,8 @@ void dns_ack6(void)
+       }
+     } else
+       for (i = 0;i < NSCOUNT6;i++) {
++        if (!NSSOCKADDR6(i))
++          continue;
+ 	if ( addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr),
+ 		      (void *) &(from6->sin6_addr), AF_INET6 ) == 0 )
+ 	  break;
+commit 59c16297a4008ee4b59ae49854d09f49f0713055
+Author: Michal Sekletar <sekletar.m at gmail.com>
+Date:   Thu Jun 6 16:13:52 2013 +0200
+
+    dns: Fix segfault with mixed ipv4/ipv6 nameservers
+    
+    Follow-up on bug #1154432.
+
+diff --git a/dns.c b/dns.c
+index 8ea48ba..371934f 100644
+--- a/dns.c
++++ b/dns.c
+@@ -1334,6 +1334,9 @@ void dns_ack6(void)
+     if ( addrcmp( (void *) &(from6->sin6_addr), (void *) &localhost6,
+                   (int) AF_INET6 ) == 0 ) {
+       for (i = 0;i < NSCOUNT6;i++) {
++        if (!NSSOCKADDR6(i))
++          continue;
++
+ 	if ( addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr),
+ 		      (void *) &(from6->sin6_addr), (int) AF_INET6 ) == 0 ||
+ 	     addrcmp( (void *) &(NSSOCKADDR6(i)->sin6_addr),
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mtr.git/commitdiff/be422acfaba8da8f515c0e2719a2b5909bbe0f97



More information about the pld-cvs-commit mailing list