mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-31 23:27:03 +08:00

The LWIP_MALLOC_MEMPOOL macro needs to use the aligned size of the memp_malloc_helper structure, since mem_alloc() uses it to calculate the required pool element size. If LWIP_MEM_ALIGN_SIZE(x) is redefined to align to something larger than 4, then in some cases the current code can lead to unexpected mem_alloc() failures. For example: #define LWIP_MEM_ALIGN_SIZE(size) (((size) + 31) & ~31) and the largest MALLOC pool is of size 60 bytes, e.g.: #define LWIP_MALLOC_MEMPOOL(256, 60) then the following call: mem_malloc(58) will cause an assertion.