From a5c79ad0f0e4e2b61eff2ebb19ae556f4e257c47 Mon Sep 17 00:00:00 2001 From: Ciara Power Date: Thu, 17 Sep 2020 16:03:41 +0100 Subject: [PATCH] metrics: fix memory leak on allocation failure If an error occurred when allocating memory for metrics or names, the function returned without freeing allocated memory. This is now fixed to avoid the resource leak in the case that either metrics or names had been successfully allocated memory. Coverity issue: 362053 Fixes: c5b7197f662e ("telemetry: move some functions to metrics library") Cc: stable@dpdk.org Reported-by: Gaurav Singh Signed-off-by: Ciara Power Acked-by: John McNamara --- lib/librte_metrics/rte_metrics_telemetry.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/librte_metrics/rte_metrics_telemetry.c b/lib/librte_metrics/rte_metrics_telemetry.c index b97152aeb0..901cbeb0a3 100644 --- a/lib/librte_metrics/rte_metrics_telemetry.c +++ b/lib/librte_metrics/rte_metrics_telemetry.c @@ -170,7 +170,8 @@ rte_metrics_tel_format_port(uint32_t pid, json_t *ports, names = malloc(sizeof(struct rte_metric_name) * num_metrics); if (metrics == NULL || names == NULL) { METRICS_LOG_ERR("Cannot allocate memory"); - return -ENOMEM; + ret = -ENOMEM; + goto fail; } if (rte_metrics_get_names(names, num_metrics) != num_metrics ||