From: Anatoly Burakov Date: Thu, 19 Jul 2018 09:42:46 +0000 (+0100) Subject: malloc: do not skip pad on free X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=9554dbb50a8a22942128a0e5bcb52243a4f723ab;p=dpdk.git 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 --- 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);