From: Svetlana Shmidt Date: Tue, 8 Sep 2020 12:38:34 +0000 (+0000) Subject: fix bug in update_metric function X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=731c0eded1c019483b2d13c7a983578c2574fb8c;p=thirdparty%2Fcollectd.git fix bug in update_metric function --- diff --git a/src/daemon/utils_cache.c b/src/daemon/utils_cache.c index 30bad79ae..ad9d3df46 100644 --- a/src/daemon/utils_cache.c +++ b/src/daemon/utils_cache.c @@ -360,9 +360,9 @@ static int uc_update_metric(metric_t const *m) { case METRIC_TYPE_DISTRIBUTION: { distribution_destroy(ce->distribution_increase); - ce->distribution_increase = ce->values_raw.distribution; + ce->distribution_increase = distribution_clone(m->value.distribution); status = - distribution_sub(ce->distribution_increase, m->value.distribution); + distribution_sub(ce->distribution_increase, ce->values_raw.distribution); if (status == ERANGE) { distribution_destroy(ce->distribution_increase); ce->distribution_increase = distribution_clone(m->value.distribution); @@ -377,6 +377,7 @@ static int uc_update_metric(metric_t const *m) { ERROR("uc_update: distribution_sub failed with status %d.", status); return status; } + distribution_destroy(ce->values_raw.distribution); ce->values_raw.distribution = distribution_clone(m->value.distribution); break; }