summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mem.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mem.c b/src/mem.c
index 22921253ea..5bfc7b7d04 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -13,6 +13,7 @@
* 2010-06-09 Bernard fix the end stub of heap
* fix memory check in rt_realloc function
* 2010-07-13 Bernard fix RT_ALIGN issue found by kuronca
+ * 2010-10-14 Bernard fix rt_realloc issue when realloc a NULL pointer.
*/
/*
@@ -367,6 +368,10 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
return RT_NULL;
}
+ /* allocate a new memory block */
+ if (rmem == RT_NULL)
+ return rt_malloc(newsize);
+
rt_sem_take(&heap_sem, RT_WAITING_FOREVER);
if ((rt_uint8_t *)rmem < (rt_uint8_t *)heap_ptr ||