- Return early on calloc() failure. - Correct comment text for __calloc_a().
Signed-off-by: Yousong Zhou <[email protected]> --- 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 [email protected] https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
