mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-22 10:19:57 +01:00
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>
This commit is contained in:
parent
178b3772ff
commit
6fa1808cb7
@ -117,6 +117,17 @@ xoutofcore (void)
|
||||
}
|
||||
|
||||
|
||||
/* Wrapper around gpgrt_reallocarray. */
|
||||
void *
|
||||
xreallocarray (void *a, size_t oldnmemb, size_t nmemb, size_t size)
|
||||
{
|
||||
void *p = gpgrt_reallocarray (a, oldnmemb, nmemb, size);
|
||||
if (!p)
|
||||
xoutofcore ();
|
||||
return p;
|
||||
}
|
||||
|
||||
|
||||
/* A wrapper around gcry_cipher_algo_name to return the string
|
||||
"AES-128" instead of "AES". Given that we have an alias in
|
||||
libgcrypt for it, it does not harm to too much to return this other
|
||||
|
@ -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. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user