aboutsummaryrefslogtreecommitdiff
path: root/src/mesh
diff options
context:
space:
mode:
authorBart Polot <bart@net.in.tum.de>2013-11-18 14:34:11 +0000
committerBart Polot <bart@net.in.tum.de>2013-11-18 14:34:11 +0000
commitcf31c1bc656e1747c2e3deea8ef851743b9e09c5 (patch)
tree9602605655153e2415bcefa99ec281b3e819fbac /src/mesh
parent93a7b9fe201389f7c0553677522b577d9bda19c5 (diff)
downloadgnunet-cf31c1bc656e1747c2e3deea8ef851743b9e09c5.tar.gz
gnunet-cf31c1bc656e1747c2e3deea8ef851743b9e09c5.zip
- fix use after free on shutdown (#3112)
Diffstat (limited to 'src/mesh')
-rw-r--r--src/mesh/gnunet-service-mesh_connection.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesh/gnunet-service-mesh_connection.c b/src/mesh/gnunet-service-mesh_connection.c
index a7af5eb60..d8d492826 100644
--- a/src/mesh/gnunet-service-mesh_connection.c
+++ b/src/mesh/gnunet-service-mesh_connection.c
@@ -2077,6 +2077,7 @@ void
2077GMC_shutdown (void) 2077GMC_shutdown (void)
2078{ 2078{
2079 GNUNET_CONTAINER_multihashmap_destroy (connections); 2079 GNUNET_CONTAINER_multihashmap_destroy (connections);
2080 connections = NULL;
2080} 2081}
2081 2082
2082 2083
@@ -2145,6 +2146,10 @@ GMC_destroy (struct MeshConnection *c)
2145 GNUNET_SCHEDULER_cancel (c->fwd_maintenance_task); 2146 GNUNET_SCHEDULER_cancel (c->fwd_maintenance_task);
2146 if (GNUNET_SCHEDULER_NO_TASK != c->bck_maintenance_task) 2147 if (GNUNET_SCHEDULER_NO_TASK != c->bck_maintenance_task)
2147 GNUNET_SCHEDULER_cancel (c->bck_maintenance_task); 2148 GNUNET_SCHEDULER_cancel (c->bck_maintenance_task);
2149 if (GNUNET_SCHEDULER_NO_TASK != c->fwd_fc.poll_task)
2150 GNUNET_SCHEDULER_cancel (c->fwd_fc.poll_task);
2151 if (GNUNET_SCHEDULER_NO_TASK != c->bck_fc.poll_task)
2152 GNUNET_SCHEDULER_cancel (c->bck_fc.poll_task);
2148 2153
2149 /* Unregister from neighbors */ 2154 /* Unregister from neighbors */
2150 unregister_neighbors (c); 2155 unregister_neighbors (c);