]> git.droids-corp.org - dpdk.git/commitdiff
malloc: fix realloc padded element size
authorXueming Li <xuemingl@mellanox.com>
Tue, 12 Nov 2019 14:50:28 +0000 (14:50 +0000)
committerDavid Marchand <david.marchand@redhat.com>
Wed, 20 Nov 2019 13:08:39 +0000 (14:08 +0100)
When resize a memory with next element, the original element size grows.
If the orginal element has padding, the real inner element size didn't
grow as well and this causes trailer verification failure when malloc
debug enabled.

Fixes: af75078fece3 ("first public release")
Cc: stable@dpdk.org
Signed-off-by: Xueming Li <xuemingl@mellanox.com>
Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
lib/librte_eal/common/malloc_elem.c

index 658c9b5b7993c33473d414cb36b1996f2cb6ba98..afacb1813cbb22d28bbf13433a42ee8100970db3 100644 (file)
@@ -307,6 +307,11 @@ split_elem(struct malloc_elem *elem, struct malloc_elem *split_pt)
        elem->next = split_pt;
        elem->size = old_elem_size;
        set_trailer(elem);
+       if (elem->pad) {
+               /* Update inner padding inner element size. */
+               elem = RTE_PTR_ADD(elem, elem->pad);
+               elem->size = old_elem_size - elem->pad;
+       }
 }
 
 /*