From 9554dbb50a8a22942128a0e5bcb52243a4f723ab Mon Sep 17 00:00:00 2001 From: Anatoly Burakov Date: Thu, 19 Jul 2018 10:42:46 +0100 Subject: [PATCH] malloc: do not skip pad on free Previously, we were skipping erasing pad because we were expecting it to be freed when we were merging adjacent segments. However, if there were no adjacent segments to merge, we would've skipped erasing the pad, leaving non-zero memory in our free space. Fix this by including pad in the erasing unconditionally. Fixes: e43a9f52b7ff ("malloc: fix pad erasing") Cc: stable@dpdk.org Reported-by: Andrew Rybchenko Signed-off-by: Anatoly Burakov Tested-by: Andrew Rybchenko --- lib/librte_eal/common/malloc_elem.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/common/malloc_elem.c b/lib/librte_eal/common/malloc_elem.c index efcb826771..e0a8ed15b4 100644 --- a/lib/librte_eal/common/malloc_elem.c +++ b/lib/librte_eal/common/malloc_elem.c @@ -519,8 +519,8 @@ malloc_elem_free(struct malloc_elem *elem) void *ptr; size_t data_len; - ptr = RTE_PTR_ADD(elem, MALLOC_ELEM_HEADER_LEN + elem->pad); - data_len = elem->size - elem->pad - MALLOC_ELEM_OVERHEAD; + ptr = RTE_PTR_ADD(elem, MALLOC_ELEM_HEADER_LEN); + data_len = elem->size - MALLOC_ELEM_OVERHEAD; elem = malloc_elem_join_adjacent_free(elem); -- 2.20.1