diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-16 14:05:48 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2013-09-16 14:05:48 +0000 |
commit | 77139316eeecda84e45710d4dfd7c74dcff47942 (patch) | |
tree | 79902e46fb92f29523bbaad730b15679ca31b10f /src/testbed/gnunet-service-testbed_barriers.c | |
parent | b9a26a3891508c9891ca2ceb142caef2e3b08f31 (diff) | |
download | gnunet-77139316eeecda84e45710d4dfd7c74dcff47942.tar.gz gnunet-77139316eeecda84e45710d4dfd7c74dcff47942.zip |
- fix crash when disconnecting from misbehaving client
Diffstat (limited to 'src/testbed/gnunet-service-testbed_barriers.c')
-rw-r--r-- | src/testbed/gnunet-service-testbed_barriers.c | 10 |
1 files changed, 3 insertions, 7 deletions
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) | |||
360 | while (NULL != (ctx = barrier->head)) | 360 | while (NULL != (ctx = barrier->head)) |
361 | { | 361 | { |
362 | GNUNET_CONTAINER_DLL_remove (barrier->head, barrier->tail, ctx); | 362 | GNUNET_CONTAINER_DLL_remove (barrier->head, barrier->tail, ctx); |
363 | GNUNET_SERVER_client_drop (ctx->client); | 363 | cleanup_clientctx (ctx); |
364 | ctx->client = NULL; | ||
365 | if (NULL != ctx->tx) | ||
366 | { | ||
367 | GNUNET_SERVER_notify_transmit_ready_cancel (ctx->tx); | ||
368 | ctx->tx = NULL; | ||
369 | } | ||
370 | } | 364 | } |
371 | GNUNET_free (barrier->name); | 365 | GNUNET_free (barrier->name); |
372 | GNUNET_SERVER_client_drop (barrier->mc); | 366 | GNUNET_SERVER_client_drop (barrier->mc); |
@@ -532,6 +526,8 @@ disconnect_cb (void *cls, struct GNUNET_SERVER_Client *client) | |||
532 | if (NULL == client) | 526 | if (NULL == client) |
533 | return; | 527 | return; |
534 | client_ctx = GNUNET_SERVER_client_get_user_context (client, struct ClientCtx); | 528 | client_ctx = GNUNET_SERVER_client_get_user_context (client, struct ClientCtx); |
529 | if (NULL == client_ctx) | ||
530 | return; | ||
535 | cleanup_clientctx (client_ctx); | 531 | cleanup_clientctx (client_ctx); |
536 | } | 532 | } |
537 | 533 | ||