Browse Source

fix rt_realloc issue when realloc a NULL pointer.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1010 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong 14 years ago
parent
commit
9e324032b6
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/mem.c

+ 5 - 0
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 ||