diff options
author | Justus Winter <[email protected]> | 2016-04-21 10:59:59 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-04-21 12:38:53 +0000 |
commit | c6d1f2f08c68efe7e80887219064a8ce6365128f (patch) | |
tree | 33c32ad85cdae7955c9e87377569456fa956c3c3 | |
parent | common: Add 'append_to_strlist_try' which can fail. (diff) | |
download | gnupg-c6d1f2f08c68efe7e80887219064a8ce6365128f.tar.gz gnupg-c6d1f2f08c68efe7e80887219064a8ce6365128f.zip |
common: Add 'free_strlist_wipe' which wipes memory.
* common/strlist.c (free_strlist_wipe): New function.
* common/strlist.h (free_strlist_wipe): New prototype.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | common/strlist.c | 14 | ||||
-rw-r--r-- | common/strlist.h | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/common/strlist.c b/common/strlist.c index 2ba0209f9..319d034e2 100644 --- a/common/strlist.c +++ b/common/strlist.c @@ -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 diff --git a/common/strlist.h b/common/strlist.h index 94dd32f05..45f5543a3 100644 --- a/common/strlist.h +++ b/common/strlist.h @@ -40,6 +40,8 @@ struct string_list typedef struct string_list *strlist_t; void free_strlist (strlist_t sl); +void free_strlist_wipe (strlist_t sl); + strlist_t add_to_strlist (strlist_t *list, const char *string); strlist_t add_to_strlist_try (strlist_t *list, const char *string); |