summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2017-08-15 09:10:52 +0800
committerGitHub <[email protected]>2017-08-15 09:10:52 +0800
commit05496a5c2522d2bd276f4d04315a51933a899ebd (patch)
tree6943849207b31f9d6ae9e42d2ea1805bba742849
parentb9dc1c5bee6e36ef1e0469bd3f0795e23c0c988b (diff)
parenta7e7b3dc0274975a6faec637ad2561412c0f0884 (diff)
Merge pull request #802 from armink/fix_realloc
[Kernel] Fix rt_realloc issue when new size is 0.
-rw-r--r--src/mem.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mem.c b/src/mem.c
index b19e46d524..94e9474f7c 100644
--- a/src/mem.c
+++ b/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 */
-