leak-detective: Register OS X specific hooks just once
authorMartin Willi <martin@revosec.ch>
Wed, 6 Nov 2013 09:09:04 +0000 (10:09 +0100)
committerMartin Willi <martin@revosec.ch>
Wed, 6 Nov 2013 09:30:59 +0000 (10:30 +0100)
If we initialize libstrongswan more than once in the same process, we may
not register the hooks twice.

src/libstrongswan/utils/leak_detective.c

index 87e21bb..16e0237 100644 (file)
@@ -333,9 +333,16 @@ HOOK(size_t, size, const void *ptr)
  */
 static bool register_hooks()
 {
+       static bool once = FALSE;
        malloc_zone_t *zone;
        void *page;
 
+       if (once)
+       {
+               return TRUE;
+       }
+       once = TRUE;
+
        zone = malloc_default_zone();
        if (zone->version != MALLOC_ZONE_VERSION)
        {