aboutsummaryrefslogtreecommitdiff
path: root/cddl/contrib/opensolaris/lib
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2015-02-02 20:48:31 +0000
committerMark Johnston <markj@FreeBSD.org>2015-02-02 20:48:31 +0000
commit6ac0e4858ac60dfade25336c0164d11c5a49d7e1 (patch)
tree2e4bcfee47df06ba8662139a7ad342320138d586 /cddl/contrib/opensolaris/lib
parent174b32ced4be75344530fcbd5d56bb49c5250401 (diff)
downloadsrc-6ac0e4858ac60dfade25336c0164d11c5a49d7e1.tar.gz
src-6ac0e4858ac60dfade25336c0164d11c5a49d7e1.zip
Let the standard deviation of the empty set be 0. This is consistent with
the behaviour for averages, and fixes a crash that can occur when attempting to print a stddev aggregation containing no elements: dtrace:::BEGIN { @ = stddev(0); clear(@); printa("%@d", @); } PR: 197260 MFC after: 2 week
Notes
Notes: svn path=/head/; revision=278114
Diffstat (limited to 'cddl/contrib/opensolaris/lib')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
index 7eae3986e93a..da804eef87b5 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_consume.c
@@ -382,6 +382,9 @@ dt_stddev(uint64_t *data, uint64_t normal)
int64_t norm_avg;
uint64_t diff[2];
+ if (data[0] == 0)
+ return (0);
+
/*
* The standard approximation for standard deviation is
* sqrt(average(x**2) - average(x)**2), i.e. the square root