From 77139316eeecda84e45710d4dfd7c74dcff47942 Mon Sep 17 00:00:00 2001 From: Sree Harsha Totakura Date: Mon, 16 Sep 2013 14:05:48 +0000 Subject: - fix crash when disconnecting from misbehaving client --- src/testbed/gnunet-service-testbed_barriers.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'src/testbed/gnunet-service-testbed_barriers.c') diff --git a/src/testbed/gnunet-service-testbed_barriers.c b/src/testbed/gnunet-service-testbed_barriers.c index 68011065d..5668d03cf 100644 --- a/src/testbed/gnunet-service-testbed_barriers.c +++ b/src/testbed/gnunet-service-testbed_barriers.c @@ -360,13 +360,7 @@ remove_barrier (struct Barrier *barrier) while (NULL != (ctx = barrier->head)) { GNUNET_CONTAINER_DLL_remove (barrier->head, barrier->tail, ctx); - GNUNET_SERVER_client_drop (ctx->client); - ctx->client = NULL; - if (NULL != ctx->tx) - { - GNUNET_SERVER_notify_transmit_ready_cancel (ctx->tx); - ctx->tx = NULL; - } + cleanup_clientctx (ctx); } GNUNET_free (barrier->name); GNUNET_SERVER_client_drop (barrier->mc); @@ -532,6 +526,8 @@ disconnect_cb (void *cls, struct GNUNET_SERVER_Client *client) if (NULL == client) return; client_ctx = GNUNET_SERVER_client_get_user_context (client, struct ClientCtx); + if (NULL == client_ctx) + return; cleanup_clientctx (client_ctx); } -- cgit v1.2.3