[OpenWrt-Devel] [PATCH 2/5] utils: refine calloc_a a bit.
Yousong Zhou
yszhou4tech at gmail.com
Thu Jun 4 09:41:39 EDT 2015
- Return early on calloc() failure.
- Correct comment text for __calloc_a().
Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
---
utils.c | 4 ++++
utils.h | 6 +++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/utils.c b/utils.c
index 8fd19f4..627b0f6 100644
--- a/utils.c
+++ b/utils.c
@@ -43,6 +43,10 @@ void *__calloc_a(size_t len, ...)
va_end(ap1);
ptr = calloc(1, alloc_len);
+ if (!ptr) {
+ va_end(ap);
+ return NULL;
+ }
alloc_len = 0;
foreach_arg(ap, cur_addr, cur_len, &ret, len) {
*cur_addr = &ptr[alloc_len];
diff --git a/utils.h b/utils.h
index d00e76b..9456f72 100644
--- a/utils.h
+++ b/utils.h
@@ -25,8 +25,10 @@
#include <stdbool.h>
#include <time.h>
+#define calloc_a(len, ...) __calloc_a(len, ##__VA_ARGS__, NULL)
+
/*
- * calloc_a(size_t len, [void **addr, size_t len,...], NULL)
+ * __calloc_a(size_t len, [void **addr, size_t len,...], NULL)
*
* allocate a block of memory big enough to hold multiple aligned objects.
* the pointer to the full object (starting with the first chunk) is returned,
@@ -34,8 +36,6 @@
* the last argument needs to be a NULL pointer
*/
-#define calloc_a(len, ...) __calloc_a(len, ##__VA_ARGS__, NULL)
-
void *__calloc_a(size_t len, ...);
#ifndef ARRAY_SIZE
--
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list