This is an automated email from the ASF dual-hosted git repository.

aguettouche pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 95dc647  mm/umm_heap/: Handle size zero in umm_malloc.c and 
umm_realloc.c, which causes a system freeze in kernel mode.
95dc647 is described below

commit 95dc647c3cf55d9a4a9edc4453c696b730b43d77
Author: Oki Minabe <minabe....@gmail.com>
AuthorDate: Sat Feb 1 17:45:08 2020 +0900

    mm/umm_heap/: Handle size zero in umm_malloc.c and umm_realloc.c, which 
causes a system freeze in kernel mode.
---
 mm/umm_heap/umm_malloc.c  | 5 +++++
 mm/umm_heap/umm_realloc.c | 6 ++++++
 2 files changed, 11 insertions(+)

diff --git a/mm/umm_heap/umm_malloc.c b/mm/umm_heap/umm_malloc.c
index 7f38ac3..ea2f13e 100644
--- a/mm/umm_heap/umm_malloc.c
+++ b/mm/umm_heap/umm_malloc.c
@@ -70,6 +70,11 @@ FAR void *malloc(size_t size)
   FAR void *brkaddr;
   FAR void *mem;
 
+  if (size < 1)
+    {
+      return NULL;
+    }
+
   /* Loop until we successfully allocate the memory or until an error
    * occurs. If we fail to allocate memory on the first pass, then call
    * sbrk to extend the heap by one page.  This may require several
diff --git a/mm/umm_heap/umm_realloc.c b/mm/umm_heap/umm_realloc.c
index 5538bf5..0a27df4 100644
--- a/mm/umm_heap/umm_realloc.c
+++ b/mm/umm_heap/umm_realloc.c
@@ -71,6 +71,12 @@ FAR void *realloc(FAR void *oldmem, size_t size)
   FAR void *brkaddr;
   FAR void *mem;
 
+  if (size < 1)
+    {
+      mm_free(USR_HEAP, oldmem);
+      return NULL;
+    }
+
   /* Loop until we successfully allocate the memory or until an error
    * occurs. If we fail to allocate memory on the first pass, then call
    * sbrk to extend the heap by one page.  This may require several

Reply via email to