This will be used for allocating memory for arrays
in heap instead of keeping them on stack.

Signed-off-by: Oleksandr Natalenko <[email protected]>
---
 include/utils.h |  1 +
 src/utils.c     | 11 +++++++++++
 2 files changed, 12 insertions(+)

diff --git a/include/utils.h b/include/utils.h
index bb58ba4..3199388 100644
--- a/include/utils.h
+++ b/include/utils.h
@@ -138,6 +138,7 @@ extern void __memory_allocation_error(const char *filename, 
uint32_t line) __nor
 
 extern void xfree(const void *ptr);
 extern void *xmalloc(size_t size);
+extern void *xmalloc_array(size_t nmemb, size_t size);
 extern void *xrealloc(void *ptr, size_t size);
 extern void *xzalloc(size_t size);
 extern char *xstrdup(const char *s);
diff --git a/src/utils.c b/src/utils.c
index 65dabf4..9e8866d 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -39,6 +39,17 @@ void *xmalloc(size_t size)
        return ptr;
 }
 
+void *xmalloc_array(size_t nmemb, size_t size)
+{
+       assert(nmemb != 0);
+       assert(size != 0);
+
+       if (nmemb > SIZE_MAX / size)
+               memory_allocation_error();
+
+       return xmalloc(nmemb * size);
+}
+
 void *xrealloc(void *ptr, size_t size)
 {
        ptr = realloc(ptr, size);
-- 
2.11.0

--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to