From 71a483b672933fb1de45aebb7869a06bc63f09be Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Mon, 27 Jun 2016 14:35:33 +0000 Subject: [PATCH] avoid NPE --- src/cadet/gnunet-service-cadet_peer.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/cadet/gnunet-service-cadet_peer.c b/src/cadet/gnunet-service-cadet_peer.c index ee8f9652f..fa16db4bb 100644 --- a/src/cadet/gnunet-service-cadet_peer.c +++ b/src/cadet/gnunet-service-cadet_peer.c @@ -455,8 +455,6 @@ core_connect (void *cls, GNUNET_assert (NULL == neighbor->connections); neighbor->connections = GNUNET_CONTAINER_multihashmap_create (16, GNUNET_NO); - GNUNET_assert (NULL != neighbor->connections); - GNUNET_STATISTICS_update (stats, "# peers", 1, @@ -501,11 +499,14 @@ core_disconnect (void *cls, "DISCONNECTED %s <= %s\n", own_id, GNUNET_i2s (peer)); direct_path = pop_direct_path (p); - GNUNET_CONTAINER_multihashmap_iterate (p->connections, - ¬ify_broken, - p); - GNUNET_CONTAINER_multihashmap_destroy (p->connections); - p->connections = NULL; + if (NULL != p->connections) + { + GNUNET_CONTAINER_multihashmap_iterate (p->connections, + ¬ify_broken, + p); + GNUNET_CONTAINER_multihashmap_destroy (p->connections); + p->connections = NULL; + } if (NULL != p->core_transmit) { GNUNET_CORE_notify_transmit_ready_cancel (p->core_transmit); @@ -774,6 +775,7 @@ peer_destroy (struct CadetPeer *peer) { GNUNET_assert (0 == GNUNET_CONTAINER_multihashmap_size (peer->connections)); GNUNET_CONTAINER_multihashmap_destroy (peer->connections); + peer->connections = NULL; } if (NULL != peer->hello_offer) { @@ -818,6 +820,7 @@ shutdown_peer (void *cls, { struct CadetPeer *p = value; struct CadetTunnel *t = p->tunnel; + LOG (GNUNET_ERROR_TYPE_DEBUG, " shutting down %s\n", GCP_2s (p)); if (NULL != t) GCT_destroy (t); -- 2.25.1