-fix segv
authorChristian Grothoff <christian@grothoff.org>
Thu, 29 Mar 2012 12:34:38 +0000 (12:34 +0000)
committerChristian Grothoff <christian@grothoff.org>
Thu, 29 Mar 2012 12:34:38 +0000 (12:34 +0000)
src/dht/gnunet-service-dht_clients.c

index 96fcd34281121bad8603da73394bcf74ea964d7f..fad2d1483d62ecf868125af353e5671b5cf683e8 100644 (file)
@@ -1153,12 +1153,18 @@ GDS_CLIENTS_done ()
     GNUNET_SCHEDULER_cancel (retry_task);
     retry_task = GNUNET_SCHEDULER_NO_TASK;
   }
-  GNUNET_assert (0 == GNUNET_CONTAINER_heap_get_size (retry_heap));
-  GNUNET_CONTAINER_heap_destroy (retry_heap);
-  retry_heap = NULL;
-  GNUNET_assert (0 == GNUNET_CONTAINER_multihashmap_size (forward_map));
-  GNUNET_CONTAINER_multihashmap_destroy (forward_map);
-  forward_map = NULL;
+  if (NULL != retry_heap)
+  {
+    GNUNET_assert (0 == GNUNET_CONTAINER_heap_get_size (retry_heap));
+    GNUNET_CONTAINER_heap_destroy (retry_heap);
+    retry_heap = NULL;
+  }
+  if (NULL != forward_map)
+  {
+    GNUNET_assert (0 == GNUNET_CONTAINER_multihashmap_size (forward_map));
+    GNUNET_CONTAINER_multihashmap_destroy (forward_map);
+    forward_map = NULL;
+  }
 }
 
 /* end of gnunet-service-dht_clients.c */