Bug 89312 - Patch fixes to bugs in net/mtr
Summary: Patch fixes to bugs in net/mtr
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: bill fumerola
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-11-20 12:30 UTC by Mark Knight
Modified: 2005-12-09 14:40 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Mark Knight 2005-11-20 12:30:34 UTC
Since upgrading to mtr-0.69, I've been getting duplicate entries for 
multi-path routers.  This first bug affects 5.4 and 6.0:

  <http://www.bitwizard.nl/cgi-bin/mtr/incoming?id=2506>

There's also a bug in the IPv6 handling that affects FreeBSD 6.0
(fix found by Hajimu UMEMOTO).

Fix: The following patch fixes both of these issues:



This patch can also be downloaded here:

  <http://www.knigma.org.uk/scratch/patch-net.c.txt>--8nDys3Y2EDtiePpT5V7mVwL8aKLHMq4U9sFkPns69P2WqbyF
Content-Type: text/plain; name="file.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file.diff"

Index: patch-net.c
===================================================================
RCS file: /home/ncvs/ports/net/mtr/files/patch-net.c,v
retrieving revision 1.1
diff -u -r1.1 patch-net.c
--- patch-net.c	29 Oct 2004 22:31:02 -0000	1.1
+++ patch-net.c	16 Nov 2005 19:43:15 -0000
@@ -1,10 +1,28 @@
---- net.c.orig	Wed Aug 25 09:21:27 2004
-+++ net.c	Tue Oct 26 12:46:58 2004
-@@ -249,7 +249,6 @@
+--- net.c.orig	Thu Jan 13 08:13:53 2005
++++ net.c	Wed Nov 16 19:43:05 2005
+@@ -277,7 +277,7 @@
+       exit( EXIT_FAILURE);
+     }
+     echotype = ICMP6_ECHO_REQUEST;
+-    salen = sizeof (struct sockaddr_storage);
++    salen = sizeof (struct sockaddr_in6);
+     break;
+ #endif
+   }
+@@ -305,7 +305,6 @@
      rv = sendto(sendsock, packet, abs(packetsize), 0, 
- 		(struct sockaddr *)&remoteaddress, sizeof(remoteaddress));
+ 		remotesockaddr, salen);
      if (rv >= 0) {
 -      fprintf (stderr, "You've got a broken (FreeBSD?) system\n");
        BSDfix = 1;
      }
    }
+@@ -346,7 +345,7 @@
+     addrcpy( (void *) &(host[index].addrs[0]), addr, af );
+   } else {
+     for( i=0; i<MAXPATH; ) {
+-      if( addrcmp( (void *) &(host[index].addrs[i]), (void *) &addr,
++      if( addrcmp( (void *) &(host[index].addrs[i]), addr,
+                    af ) == 0 ||
+           addrcmp( (void *) &(host[index].addrs[i]),
+ 		   (void *) &unspec_addr, af ) == 0 ) break;
How-To-Repeat: 
Use mtr on a 6.0-STABLE system.
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2005-11-20 12:33:13 UTC
Responsible Changed
From-To: freebsd-ports-bugs->billf

Over to maintainer
Comment 2 Pav Lucistnik freebsd_committer freebsd_triage 2005-12-09 14:40:37 UTC
State Changed
From-To: open->closed

Committed, thanks!