diff options
author | Werner Koch <wk@gnupg.org> | 2020-03-04 13:55:53 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2020-03-04 13:55:53 +0100 |
commit | 6fa1808cb7639f0f3745b78c4b7ce902e42b228c (patch) | |
tree | da32f3560bbd6b050bc338571d6d1fd8b3ebf3e8 /common/util.h | |
parent | gpgconf: Always use xmalloc. (diff) | |
download | gnupg2-6fa1808cb7639f0f3745b78c4b7ce902e42b228c.tar.xz gnupg2-6fa1808cb7639f0f3745b78c4b7ce902e42b228c.zip |
common: Add xreallocarray function.
* common/miscellaneous.c (xreallocarray): New func.
* common/util.h (xtryreallocarray): New macro.
--
Very useful to match calloc behaviour.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to '')
-rw-r--r-- | common/util.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/common/util.h b/common/util.h index e1d9fa6fd..daf6d7438 100644 --- a/common/util.h +++ b/common/util.h @@ -99,6 +99,7 @@ typedef char **rl_completion_func_t (const char *, int, int); #define xtrycalloc(a,b) gcry_calloc ((a),(b)) #define xtrycalloc_secure(a,b) gcry_calloc_secure ((a),(b)) #define xtryrealloc(a,b) gcry_realloc ((a),(b)) +#define xtryreallocarray(a,b,c,d) gpgrt_reallocarray ((a),(b),(c),(d)) #define xtrystrdup(a) gcry_strdup ((a)) #define xfree(a) gcry_free ((a)) #define xfree_fnc gcry_free @@ -109,6 +110,7 @@ typedef char **rl_completion_func_t (const char *, int, int); #define xcalloc_secure(a,b) gcry_xcalloc_secure ((a),(b)) #define xrealloc(a,b) gcry_xrealloc ((a),(b)) #define xstrdup(a) gcry_xstrdup ((a)) +/* See also the xreallocarray prototype below. */ /* For compatibility with gpg 1.4 we also define these: */ #define xmalloc_clear(a) gcry_xcalloc (1, (a)) @@ -306,6 +308,12 @@ void setup_libgcrypt_logging (void); /* Print an out of core message and die. */ void xoutofcore (void); +/* Wrapper aroung gpgrt_reallocarray. Uses the gpgrt alloc function + * which are redirect to the Libgcrypt versions via + * init_common_subsystems. Thus they can be used interchangeable with + * the other alloc functions. */ +void *xreallocarray (void *a, size_t oldnmemb, size_t nmemb, size_t size); + /* Same as estream_asprintf but die on memory failure. */ char *xasprintf (const char *fmt, ...) GPGRT_ATTR_PRINTF(1,2); /* This is now an alias to estream_asprintf. */ |