aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-07-01 12:42:18 +0000
committerWerner Koch <[email protected]>2016-07-01 14:27:43 +0000
commit6446a6b3dfd3b2e68b4285870f902ed1f86b0866 (patch)
treeb94e5b024156581443e5953adce058d22e29375f
parentcommon: Annotate semi-static allocation. (diff)
downloadgnupg-6446a6b3dfd3b2e68b4285870f902ed1f86b0866.tar.gz
gnupg-6446a6b3dfd3b2e68b4285870f902ed1f86b0866.zip
common: Smart up register_mem_cleanup_func.
* common/init.c (register_mem_cleanup_func): Avoid double registration. Signed-off-by: Werner Koch <[email protected]>
-rw-r--r--common/init.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/common/init.c b/common/init.c
index c68a4e631..c406ffe58 100644
--- a/common/init.c
+++ b/common/init.c
@@ -106,6 +106,10 @@ register_mem_cleanup_func (void (*func)(void))
{
mem_cleanup_item_t item;
+ for (item = mem_cleanup_list; item; item = item->next)
+ if (item->func == func)
+ return; /* Function has already been registered. */
+
item = malloc (sizeof *item);
if (item)
{