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);