Module Name:    src
Committed By:   ahoka
Date:           Mon Sep 20 11:49:48 UTC 2010

Modified Files:
        src/sbin/ping6: ping6.c

Log Message:
Avoid NaN when calculating std-dev, which fixes a crash on VAX.


To generate a diff of this commit:
cvs rdiff -u -r1.72 -r1.73 src/sbin/ping6/ping6.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sbin/ping6/ping6.c
diff -u src/sbin/ping6/ping6.c:1.72 src/sbin/ping6/ping6.c:1.73
--- src/sbin/ping6/ping6.c:1.72	Sat Apr 11 07:45:48 2009
+++ src/sbin/ping6/ping6.c	Mon Sep 20 11:49:48 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ping6.c,v 1.72 2009/04/11 07:45:48 lukem Exp $	*/
+/*	$NetBSD: ping6.c,v 1.73 2010/09/20 11:49:48 ahoka Exp $	*/
 /*	$KAME: ping6.c,v 1.164 2002/11/16 14:05:37 itojun Exp $	*/
 
 /*
@@ -77,7 +77,7 @@
 #else
 #include <sys/cdefs.h>
 #ifndef lint
-__RCSID("$NetBSD: ping6.c,v 1.72 2009/04/11 07:45:48 lukem Exp $");
+__RCSID("$NetBSD: ping6.c,v 1.73 2010/09/20 11:49:48 ahoka Exp $");
 #endif
 #endif
 
@@ -2109,8 +2109,14 @@
 	if (nreceived && timing) {
 		/* Only display average to microseconds */
 		double num = nreceived + nrepeats;
-		double avg = tsum / num;
-		double dev = sqrt((tsumsq - num * avg * avg) / (num - 1));
+		double dev, avg;
+		if (num > 1) {
+			avg = tsum / num;
+			dev = sqrt((tsumsq - num * avg * avg) / (num - 1));
+		} else {
+			avg = tsum;
+			dev = 0.0;
+		}
 		(void)printf(
 		    "round-trip min/avg/max/std-dev = %.3f/%.3f/%.3f/%.3f ms\n",
 		    tmin, avg, tmax, dev);

Reply via email to