ace11bbefd
If maxsize is smaller than _MPOOL_MINBLK, then Z_MPOOL_LVLS() will be 0. That means the loop in z_sys_mem_pool_base_init() that initializes the block free list for the nonexistent level 0 will corrupt whatever memory at the location the zero-sized struct sys_mem_pool_lvl array was located. And the corruption happens to be done with a perfectly legit memory pool block address which makes for really nasty bugs to solve. This is more likely on 64-bit systems due to _MPOOL_MINBLK being twice the size of 32-bit systems. Let's prevent that with a build-time assertion on maxsize when defining a memory pool, and adjust the affected test accordingly. Signed-off-by: Nicolas Pitre <npitre@baylibre.com> |
||
---|---|---|
.. | ||
src | ||
CMakeLists.txt | ||
prj.conf | ||
prj_poll.conf | ||
testcase.yaml |