[dpdk-dev] [PATCH v2] eal: unmap undesired address upon config reattach failure

Arnon Warshavsky arnon at qwilt.com
Mon Aug 19 15:57:44 CEST 2019


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")
Signed-off-by: Arnon Warshavsky <arnon at qwilt.com>
---

-v2 added fixes messages and applied also to freebsd

 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 d53f0fe..963db76 100644
--- a/lib/librte_eal/freebsd/eal/eal.c
+++ b/lib/librte_eal/freebsd/eal/eal.c
@@ -341,6 +341,7 @@ enum rte_iova_mode
 		/* 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 946222c..fac69b9 100644
--- a/lib/librte_eal/linux/eal/eal.c
+++ b/lib/librte_eal/linux/eal/eal.c
@@ -438,6 +438,7 @@ enum rte_iova_mode
 			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",
-- 
1.8.3.1



More information about the dev mailing list