diff options
author | Bart Polot <bart@net.in.tum.de> | 2013-11-18 14:34:11 +0000 |
---|---|---|
committer | Bart Polot <bart@net.in.tum.de> | 2013-11-18 14:34:11 +0000 |
commit | cf31c1bc656e1747c2e3deea8ef851743b9e09c5 (patch) | |
tree | 9602605655153e2415bcefa99ec281b3e819fbac /src/mesh | |
parent | 93a7b9fe201389f7c0553677522b577d9bda19c5 (diff) | |
download | gnunet-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.c | 5 |
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 | |||
2077 | GMC_shutdown (void) | 2077 | GMC_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); |