gpg: Fix false negatives in Ed25519 signature verification.
[gnupg.git] / common / strlist.c
index 2ba0209..d4f8644 100644 (file)
@@ -39,6 +39,7 @@
 #include "common-defs.h"
 #include "strlist.h"
 #include "utf8conv.h"
+#include "mischelp.h"
 
 void
 free_strlist( strlist_t sl )
@@ -52,6 +53,19 @@ free_strlist( strlist_t sl )
 }
 
 
+void
+free_strlist_wipe (strlist_t sl)
+{
+    strlist_t sl2;
+
+    for(; sl; sl = sl2 ) {
+       sl2 = sl->next;
+        wipememory (sl, sizeof *sl + strlen (sl->d));
+       xfree(sl);
+    }
+}
+
+
 /* Add STRING to the LIST at the front.  This function terminates the
    process on memory shortage.  */
 strlist_t
@@ -114,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;
 }
 
@@ -126,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;