Re: odd code in traceroute.c

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <tech@...>
Date: Friday, July 3, 2009 - 6:48 am

> I've tweaked freebsd's fix so that it really ...

... leaks memory!  The following diff maybe has a higher probability
of being right...

Index: traceroute.c
===================================================================
RCS file: /cvs/src/usr.sbin/traceroute/traceroute.c,v
retrieving revision 1.67
diff -u -r1.67 traceroute.c
--- traceroute.c	5 Jun 2009 00:10:01 -0000	1.67
+++ traceroute.c	3 Jul 2009 10:40:45 -0000
@@ -608,10 +608,6 @@
 			send_probe(++seq, ttl, incflag, &to);
 			while ((cc = wait_for_reply(s, &from, &t1))) {
 				(void) gettimeofday(&t2, NULL);
-				if (t2.tv_sec - t1.tv_sec > waittime) {
-					cc = 0;
-					break;
-				}
 				i = packet_ok(packet, cc, &from, seq, incflag);
 				/* Skip short packet */
 				if (i == 0)
@@ -740,10 +736,9 @@
 		wait.tv_usec += 1000000;
 		wait.tv_sec--;
 	}
-	if (wait.tv_sec < 0)
-		wait.tv_sec = wait.tv_usec = 0;
 
-	if (select(sock+1, fdsp, (fd_set *)0, (fd_set *)0, &wait) > 0)
+	if (wait.tv_sec >= 0 &&
+	    select(sock+1, fdsp, (fd_set *)0, (fd_set *)0, &wait) > 0)
 		cc = recvfrom(s, (char *)packet, sizeof(packet), 0,
 		    (struct sockaddr *)from, &fromlen);
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
odd code in traceroute.c, Paul Stoeber, (Fri Jul 3, 6:26 am)
Re: odd code in traceroute.c, Paul Stoeber, (Fri Jul 3, 6:48 am)