commit dc0da39a4d4a086b5286ae4705a3b96695d2f5f0
parent 1446d6a11597c0ef6b614b2759c704d37a0f759c
Author: Christian Grothoff <christian@grothoff.org>
Date: Fri, 19 Dec 2014 13:33:26 +0000
-fix use after free
Diffstat:
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/set/gnunet-service-set.c b/src/set/gnunet-service-set.c
@@ -469,6 +469,8 @@ handle_client_disconnect (void *cls,
static void
incoming_destroy (struct Operation *incoming)
{
+ struct GNUNET_CADET_Channel *channel;
+
GNUNET_assert (GNUNET_YES == incoming->is_incoming);
GNUNET_CONTAINER_DLL_remove (incoming_head,
incoming_tail,
@@ -490,10 +492,10 @@ incoming_destroy (struct Operation *incoming)
GNUNET_MQ_destroy (incoming->mq);
incoming->mq = NULL;
}
- if (NULL != incoming->channel)
+ if (NULL != (channel = incoming->channel))
{
- GNUNET_CADET_channel_destroy (incoming->channel);
incoming->channel = NULL;
+ GNUNET_CADET_channel_destroy (channel);
}
}