common: Smart up register_mem_cleanup_func.
authorWerner Koch <wk@gnupg.org>
Fri, 1 Jul 2016 12:42:18 +0000 (14:42 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 1 Jul 2016 14:27:43 +0000 (16:27 +0200)
* common/init.c (register_mem_cleanup_func): Avoid double registration.

Signed-off-by: Werner Koch <wk@gnupg.org>
common/init.c

index c68a4e6..c406ffe 100644 (file)
@@ -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)
     {