Do not crash if key is NULL.
[oweals/gnunet.git] / src / fs / gnunet-service-fs_cadet_client.c
index dde7aba48715993e1c6c03e08073e5c517fa8a46..f0905e6c3f61f8d7fd4953bb7aff1d2ee9e0ecae 100644 (file)
@@ -219,8 +219,17 @@ reset_cadet (struct CadetHandle *mh)
              "Resetting cadet channel to %s\n",
              GNUNET_i2s (&mh->target));
   mh->channel = NULL;
+
   if (NULL != channel)
+  {
+    /* Avoid loop */
+    if (NULL != mh->wh)
+    {
+      GNUNET_CADET_notify_transmit_ready_cancel (mh->wh);
+      mh->wh = NULL;
+    }
     GNUNET_CADET_channel_destroy (channel);
+  }
   GNUNET_CONTAINER_multihashmap_iterate (mh->waiting_map,
                                         &move_to_pending,
                                         mh);
@@ -252,7 +261,8 @@ cadet_timeout (void *cls,
   mh->timeout_task = GNUNET_SCHEDULER_NO_TASK;
   tun = mh->channel;
   mh->channel = NULL;
-  GNUNET_CADET_channel_destroy (tun);
+  if(NULL != tun)
+       GNUNET_CADET_channel_destroy (tun);
 }