From 8776abbe02935e720018f3ef6ffd48f21435ff8b Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 25 Apr 2016 17:26:57 +0200 Subject: common: Use new function to print a failure of xtrymalloc. * common/miscellaneous.c (xoutofcore): New. * common/strlist.c (append_to_strlist): Use instead of abort. (append_to_strlist_try): Use xtrymalloc instead of xmalloc. Signed-off-by: Werner Koch --- common/miscellaneous.c | 11 +++++++++++ common/strlist.c | 6 +++--- common/util.h | 3 +++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/common/miscellaneous.c b/common/miscellaneous.c index ec36f08ea..8d9a7aa73 100644 --- a/common/miscellaneous.c +++ b/common/miscellaneous.c @@ -106,6 +106,17 @@ setup_libgcrypt_logging (void) } +/* Print an out of core message and let the process die. The printed + * error is taken from ERRNO. */ +void +xoutofcore (void) +{ + gpg_error_t err = gpg_error_from_syserror (); + log_fatal (_("error allocating enough memory: %s\n"), gpg_strerror (err)); + abort (); /* Never called; just to make the compiler happy. */ +} + + /* 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 diff --git a/common/strlist.c b/common/strlist.c index 319d034e2..d4f864496 100644 --- a/common/strlist.c +++ b/common/strlist.c @@ -128,8 +128,8 @@ append_to_strlist( strlist_t *list, const char *string ) { strlist_t sl; sl = append_to_strlist_try (list, string); - if (sl == NULL) - abort (); + if (!sl) + xoutofcore (); return sl; } @@ -140,7 +140,7 @@ append_to_strlist_try (strlist_t *list, const char *string) { strlist_t r, sl; - sl = xmalloc( sizeof *sl + strlen(string)); + sl = xtrymalloc( sizeof *sl + strlen(string)); if (sl == NULL) return NULL; diff --git a/common/util.h b/common/util.h index 466c519bd..84a15ab74 100644 --- a/common/util.h +++ b/common/util.h @@ -263,6 +263,9 @@ const char *gnupg_messages_locale_name (void); logging subsystem. */ void setup_libgcrypt_logging (void); +/* Print an out of core emssage and die. */ +void xoutofcore (void); + /* 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. */ -- cgit v1.2.3