From 75dbb45f28af31f49617d93e0195daa76df1724c Mon Sep 17 00:00:00 2001 From: Arnon Warshavsky Date: Mon, 19 Aug 2019 16:57:44 +0300 Subject: [PATCH] eal: fix mapping leak in secondary process Have rte_eal_config_reattach clean up the mapped address which is a valid address but not the one intended. Coverity issue: 343439 Fixes: 4e8854ae89fa ("eal: do not panic on shared memory init") Fixes: b149a7064261 ("eal/freebsd: add config reattach in secondary process") Cc: stable@dpdk.org Signed-off-by: Arnon Warshavsky Acked-by: Anatoly Burakov Reviewed-by: David Marchand --- lib/librte_eal/freebsd/eal/eal.c | 1 + lib/librte_eal/linux/eal/eal.c | 1 + 2 files changed, 2 insertions(+) diff --git a/lib/librte_eal/freebsd/eal/eal.c b/lib/librte_eal/freebsd/eal/eal.c index 270ce54ca0..f86e9aa318 100644 --- a/lib/librte_eal/freebsd/eal/eal.c +++ b/lib/librte_eal/freebsd/eal/eal.c @@ -340,6 +340,7 @@ rte_eal_config_reattach(void) /* errno is stale, don't use */ RTE_LOG(ERR, EAL, "Cannot mmap memory for rte_config at [%p], got [%p]\n", rte_mem_cfg_addr, mem_config); + munmap(mem_config, sizeof(struct rte_mem_config)); return -1; } diff --git a/lib/librte_eal/linux/eal/eal.c b/lib/librte_eal/linux/eal/eal.c index c6ad231e0d..f39720637f 100644 --- a/lib/librte_eal/linux/eal/eal.c +++ b/lib/librte_eal/linux/eal/eal.c @@ -437,6 +437,7 @@ rte_eal_config_reattach(void) RTE_LOG(ERR, EAL, "Cannot mmap memory for rte_config at [%p], got [%p]" " - please use '--base-virtaddr' option\n", rte_mem_cfg_addr, mem_config); + munmap(mem_config, sizeof(struct rte_mem_config)); return -1; } RTE_LOG(ERR, EAL, "Cannot mmap memory for rte_config! error %i (%s)\n", -- 2.20.1