This is an automated email from the ASF dual-hosted git repository.
gnutt pushed a commit to branch pr460
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
The following commit(s) were added to refs/heads/pr460 by this push:
new 31a0a94 Prevents NuttX crashing if MM_REGIONS is too small.
31a0a94 is described below
commit 31a0a9469910abaa1e24e488106154c894065959
Author: Андрей Заболотный <[email protected]>
AuthorDate: Thu Mar 5 19:15:18 2020 +0300
Prevents NuttX crashing if MM_REGIONS is too small.
Added a DEBUGASSERT and a runtime check so that mm_region will not
overwrite critical heap data if user incorrectly defines MM_REGIONS.
---
mm/mm_heap/mm_initialize.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/mm/mm_heap/mm_initialize.c b/mm/mm_heap/mm_initialize.c
index d979408..76ae030 100644
--- a/mm/mm_heap/mm_initialize.c
+++ b/mm/mm_heap/mm_initialize.c
@@ -75,6 +75,13 @@ void mm_addregion(FAR struct mm_heap_s *heap, FAR void
*heapstart,
uintptr_t heapend;
#if CONFIG_MM_REGIONS > 1
int IDX = heap->mm_nregions;
+
+ /* Writing past CONFIG_MM_REGIONS would have catastrophic consequences */
+ DEBUGASSERT(IDX < CONFIG_MM_REGIONS);
+ if (IDX >= CONFIG_MM_REGIONS)
+ {
+ return;
+ }
#else
# define IDX 0
#endif