From 9a1a776fd790728f1158e65259dbecc8c43e34c9 Mon Sep 17 00:00:00 2001 From: Florian Forster Date: Fri, 12 May 2017 13:05:37 +0200 Subject: [PATCH] write_prometheus plugin: Fix incorrect use of realloc(). Calling realloc(ptr, 0) is undefined. Call free() explicitly. --- src/write_prometheus.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/write_prometheus.c b/src/write_prometheus.c index 6b77712e..de1c389c 100644 --- a/src/write_prometheus.c +++ b/src/write_prometheus.c @@ -546,9 +546,14 @@ metric_family_delete_metric(Io__Prometheus__Client__MetricFamily *fam, ((fam->n_metric - 1) - i) * sizeof(fam->metric[i])); fam->n_metric--; + if (fam->n_metric == 0) { + sfree(fam->metric); + return 0; + } + Io__Prometheus__Client__Metric **tmp = realloc(fam->metric, fam->n_metric * sizeof(*fam->metric)); - if ((tmp != NULL) || (fam->n_metric == 0)) + if (tmp != NULL) fam->metric = tmp; return 0; -- 2.30.2