memzone: fix leak on allocation error
We check if there's space in config after we allocated the memzone,
but if there isn't, we never free it back. This patch adds memzone
free if there's no room in memzone config.
Fixes: ff909fe21f
("mem: introduce memzone freeing")
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
This commit is contained in:
parent
fb033aceaf
commit
db22d31a79
@ -208,7 +208,7 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const struct malloc_elem *elem = malloc_elem_from_data(mz_addr);
|
||||
struct malloc_elem *elem = malloc_elem_from_data(mz_addr);
|
||||
|
||||
/* fill the zone in config */
|
||||
mz = get_next_free_memzone();
|
||||
@ -216,6 +216,7 @@ memzone_reserve_aligned_thread_unsafe(const char *name, size_t len,
|
||||
if (mz == NULL) {
|
||||
RTE_LOG(ERR, EAL, "%s(): Cannot find free memzone but there is room "
|
||||
"in config!\n", __func__);
|
||||
malloc_elem_free(elem);
|
||||
rte_errno = ENOSPC;
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user