aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2016-04-21 10:36:04 +0000
committerJustus Winter <[email protected]>2016-04-21 12:38:53 +0000
commit95303ee11df12f284e98d02dba993eda9e425383 (patch)
tree3df397aa0d0de34908e410bd91b233a9b79b00d8
parentagent: Convert key format document to org. (diff)
downloadgnupg-95303ee11df12f284e98d02dba993eda9e425383.tar.gz
gnupg-95303ee11df12f284e98d02dba993eda9e425383.zip
common: Add 'append_to_strlist_try' which can fail.
* common/strlist.c (append_to_strlist): Use the new function. (append_to_strlist_try): New function. * common/strlist.h (append_to_strlist_try): New prototype. Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--common/strlist.c15
-rw-r--r--common/strlist.h1
2 files changed, 16 insertions, 0 deletions
diff --git a/common/strlist.c b/common/strlist.c
index 760a46040..2ba0209f9 100644
--- a/common/strlist.c
+++ b/common/strlist.c
@@ -112,9 +112,24 @@ add_to_strlist2( strlist_t *list, const char *string, int is_utf8 )
strlist_t
append_to_strlist( strlist_t *list, const char *string )
{
+ strlist_t sl;
+ sl = append_to_strlist_try (list, string);
+ if (sl == NULL)
+ abort ();
+ return sl;
+}
+
+
+/* Add STRING to the LIST at the end. */
+strlist_t
+append_to_strlist_try (strlist_t *list, const char *string)
+{
strlist_t r, sl;
sl = xmalloc( sizeof *sl + strlen(string));
+ if (sl == NULL)
+ return NULL;
+
sl->flags = 0;
strcpy(sl->d, string);
sl->next = NULL;
diff --git a/common/strlist.h b/common/strlist.h
index acb92f700..94dd32f05 100644
--- a/common/strlist.h
+++ b/common/strlist.h
@@ -46,6 +46,7 @@ strlist_t add_to_strlist_try (strlist_t *list, const char *string);
strlist_t add_to_strlist2( strlist_t *list, const char *string, int is_utf8);
strlist_t append_to_strlist (strlist_t *list, const char *string);
+strlist_t append_to_strlist_try (strlist_t *list, const char *string);
strlist_t append_to_strlist2 (strlist_t *list, const char *string,
int is_utf8);