From fb44fdf83d0800e2e3e5300c3fe459bc01ec3d70 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 18 Sep 2011 07:19:47 +0000 Subject: [PATCH] fixing 1767: --- src/arm/gnunet-service-arm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/arm/gnunet-service-arm.c b/src/arm/gnunet-service-arm.c index eb19776e6..718d90280 100644 --- a/src/arm/gnunet-service-arm.c +++ b/src/arm/gnunet-service-arm.c @@ -660,6 +660,7 @@ static void shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { struct ServiceList *pos; + struct ServiceList *nxt; #if DEBUG_ARM GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, _("Stopping all services\n")); @@ -674,13 +675,18 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) pos = running_head; while (NULL != pos) { + nxt = pos->next; if (pos->proc != NULL) { GNUNET_log (GNUNET_ERROR_TYPE_INFO, "Stopping service `%s'\n", pos->name); if (0 != GNUNET_OS_process_kill (pos->proc, SIGTERM)) GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING, "kill"); } - pos = pos->next; + else + { + free_service (pos); + } + pos = nxt; } if (running_head == NULL) do_shutdown (); -- 2.25.1