[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r34067 - gnunet/src/cadet
From: |
gnunet |
Subject: |
[GNUnet-SVN] r34067 - gnunet/src/cadet |
Date: |
Mon, 28 Jul 2014 07:12:43 +0200 |
Author: bartpolot
Date: 2014-07-28 07:12:43 +0200 (Mon, 28 Jul 2014)
New Revision: 34067
Modified:
gnunet/src/cadet/gnunet-service-cadet_tunnel.c
Log:
- fix trim-after-free
Modified: gnunet/src/cadet/gnunet-service-cadet_tunnel.c
===================================================================
--- gnunet/src/cadet/gnunet-service-cadet_tunnel.c 2014-07-28 05:12:42 UTC
(rev 34066)
+++ gnunet/src/cadet/gnunet-service-cadet_tunnel.c 2014-07-28 05:12:43 UTC
(rev 34067)
@@ -200,6 +200,11 @@
*/
struct CadetTunnelDelayed *tq_head;
struct CadetTunnelDelayed *tq_tail;
+
+ /**
+ * Task to trim connections if too many are present.
+ */
+ GNUNET_SCHEDULER_TaskIdentifier trim_connections_task;
};
@@ -2288,6 +2293,8 @@
{
struct CadetTunnel *t = cls;
+ t->trim_connections_task = GNUNET_SCHEDULER_NO_TASK;
+
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
return;
@@ -2345,7 +2352,8 @@
GNUNET_CONTAINER_DLL_insert (t->connection_head, t->connection_tail, aux);
- GNUNET_SCHEDULER_add_now (&trim_connections, t);
+ if (GNUNET_SCHEDULER_NO_TASK != t->trim_connections_task)
+ t->trim_connections_task = GNUNET_SCHEDULER_add_now (&trim_connections, t);
}
@@ -2637,11 +2645,19 @@
if (GNUNET_SCHEDULER_NO_TASK != t->destroy_task)
{
- LOG (GNUNET_ERROR_TYPE_DEBUG, "cancelling %llX\n", t->destroy_task);
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "cancelling dest: %llX\n", t->destroy_task);
GNUNET_SCHEDULER_cancel (t->destroy_task);
t->destroy_task = GNUNET_SCHEDULER_NO_TASK;
}
+ if (GNUNET_SCHEDULER_NO_TASK != t->trim_connections_task)
+ {
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "cancelling trim: %llX\n",
+ t->trim_connections_task);
+ GNUNET_SCHEDULER_cancel (t->trim_connections_task);
+ t->trim_connections_task = GNUNET_SCHEDULER_NO_TASK;
+ }
+
GNUNET_STATISTICS_update (stats, "# tunnels", -1, GNUNET_NO);
GCP_set_tunnel (t->peer, NULL);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r34067 - gnunet/src/cadet,
gnunet <=