Browse Source

Merge pull request #802 from armink/fix_realloc

[Kernel] Fix rt_realloc issue when new size is 0.
Bernard Xiong 7 năm trước cách đây
mục cha
commit
05496a5c25
1 tập tin đã thay đổi với 6 bổ sung1 xóa
  1. 6 1
      src/mem.c

+ 6 - 1
src/mem.c

@@ -24,6 +24,7 @@
  *                             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.
+ * 2017-07-14     armink       fix rt_realloc issue when new size is 0
  */
 
 /*
@@ -400,6 +401,11 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
 
         return RT_NULL;
     }
+    else if (newsize == 0)
+    {
+        rt_free(rmem);
+        return RT_NULL;
+    }
 
     /* allocate a new memory block */
     if (rmem == RT_NULL)
@@ -589,4 +595,3 @@ FINSH_FUNCTION_EXPORT(list_mem, list memory usage information)
 
 #endif /* end of RT_USING_HEAP */
 #endif /* end of RT_USING_MEMHEAP_AS_HEAP */
-