zephyr/tests/kernel/queue
Nicolas Pitre ace11bbefd mempool: make sure max block size isn't smaller than minimum allowed
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>
2019-07-02 19:41:20 -07:00
..
src mempool: make sure max block size isn't smaller than minimum allowed 2019-07-02 19:41:20 -07:00
CMakeLists.txt license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
prj.conf tests: CONFIG_TEST_USERSPACE now off by default 2019-04-06 14:30:42 -04:00
prj_poll.conf tests: CONFIG_TEST_USERSPACE now off by default 2019-04-06 14:30:42 -04:00
testcase.yaml tests: set userspace tag for all tests that use it 2019-04-06 14:30:42 -04:00