aboutsummaryrefslogtreecommitdiffstats
path: root/src/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/init.c')
-rw-r--r--src/init.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/init.c b/src/init.c
index b01e089..0154091 100644
--- a/src/init.c
+++ b/src/init.c
@@ -194,6 +194,27 @@ _gpgrt_malloc (size_t n)
}
+void *
+_gpgrt_calloc (size_t n, size_t m)
+{
+ size_t bytes;
+ void *p;
+
+ bytes = n * m; /* size_t is unsigned so the behavior on overflow is
+ defined. */
+ if (m && bytes / m != n)
+ {
+ _gpg_err_set_errno (ENOMEM);
+ return NULL;
+ }
+
+ p = _gpgrt_realloc (NULL, bytes);
+ if (p)
+ memset (p, 0, bytes);
+ return p;
+}
+
+
/* The free to be used for data returned by the public API. */
void
_gpgrt_free (void *a)