eal: fix mapping leak in secondary process
authorArnon Warshavsky <arnon@qwilt.com>
Mon, 19 Aug 2019 13:57:44 +0000 (16:57 +0300)
committerDavid Marchand <david.marchand@redhat.com>
Tue, 15 Oct 2019 18:37:11 +0000 (20:37 +0200)
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 <arnon@qwilt.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
lib/librte_eal/freebsd/eal/eal.c
lib/librte_eal/linux/eal/eal.c

index 270ce54..f86e9aa 100644 (file)
@@ -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;
        }
 
index c6ad231..f397206 100644 (file)
@@ -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",