summaryrefslogtreecommitdiff
path: root/source3/lib/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib/util.c')
-rw-r--r--source3/lib/util.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 7d41a14292..5f9eb4fc45 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -913,6 +913,17 @@ void *malloc_(size_t size)
}
/****************************************************************************
+ Internal malloc wrapper. Externally visible.
+****************************************************************************/
+
+void *memalign_(size_t align, size_t size)
+{
+#undef memalign
+ return memalign(align, size);
+#define memalign(align, s) __ERROR_DONT_USE_MEMALIGN_DIRECTLY
+}
+
+/****************************************************************************
Internal calloc wrapper. Not externally visible.
****************************************************************************/
@@ -954,6 +965,23 @@ void *malloc_array(size_t el_size, unsigned int count)
}
/****************************************************************************
+ Type-safe memalign
+****************************************************************************/
+
+void *memalign_array(size_t el_size, size_t align, unsigned int count)
+{
+ if (count >= MAX_ALLOC_SIZE/el_size) {
+ return NULL;
+ }
+
+#if defined(PARANOID_MALLOC_CHECKER)
+ return memalign_(align, el_size*count);
+#else
+ return sys_memalign(align, el_size*count);
+#endif
+}
+
+/****************************************************************************
Type-safe calloc.
****************************************************************************/